Новое в node.js;нужна помощь в импорте модуля npm в мой внешний JS-проект vanilla - PullRequest
0 голосов
/ 26 сентября 2019

Позвольте мне предварить это, признав, что я очень новичок в node.js и веб-разработке в целом.Я прочесываю через stackoverflow и поиски в Google для решения, но безрезультатно.Главным образом, я не уверен, какие шаги мне нужно предпринять, так как это мой первый раз, когда я использую модули npm.

По сути, я создал статичный веб-сайт для моей подруги, который позволяет пользователям добавлять свои собственные каламбуры в существующий массив каламбуров, вдохновленный именами ее кошек.Затем сайт рандомизирует массив, если пользователи хотят просматривать каламбуры по одному.Для представлений я уже установил лимиты на то, что пользователи должны писать что-то между 0-50 символами, которое содержит хотя бы одно из имен ее кошек. Функциональность сайта была закодирована в ванили JS .Тем не менее, программа еще не учитывает бессмысленных представлений , которые в противном случае отвечают вышеуказанным требованиям (например, "alksdjjsd Cat name slkjsd").Это последний шаг, который завершит работу над сайтом.

Чтобы это исправить, я бы хотел добавить этот модуль npm в мой проект. Я протестировал модуль,и он был в состоянии правильно отделить нецензурные представления в моем массиве. Единственная проблема в том, что я понятия не имею, как поступить.

Естественно, я установил пакет в узел, а затем скопировал / вставил оператор импорта - согласно инструкциям по использованию - прямо в мой файл .js, но потом я понял, что пакет не запускается в браузере.Затем я установил node.js и создал package.json со следующими зависимостями:

  "devDependencies": {
    "browserify": "^16.5.0",
    "watchify": "^3.11.1"
  },
  "dependencies": {
    "asdfjkl": "0.0.6"
  }

Как вы уже догадались, я также создал файл bundle.js, который я связал в теге script вмой файл index.html <script src="bundle.js"></script> со следующим также в моем файле package.json:

  "main": "index.js",
  "scripts": {
    "build": "browserify index.js -o bundle.js",
    "watch": "watchify index.js -o bundle.js"
  },

Однако мне все еще неясно, как я должен следовать инструкциям по использованию в модуле npm. Я не могу использовать предложенный оператор импорта:

import asdfjkl from 'asdfjkl';

в моем коде (файлы index.js / bundle.js), не видя ошибок в моем терминале например, * ParseError: 'import' и 'export' могут появляться только с 'sourceType: module'"или

import asdfjkl from 'asdfjkl';
       ^^^^^^^

SyntaxError: Unexpected identifier

Я заметил, что многие люди с подобной проблемойиспользуют такие инструменты, как Babel, Gulp и другие пакеты, но я не могу сказать, какие инструменты мне могут понадобиться, и я точно не понимаю, как их использовать.

Любое руководство о том, как включить этот пакетв мой интерфейсный проект будет с благодарностью.Большое спасибо заранее!


Редактировать: Решение


Для того, чтобы функция asdfjkl() заработала, мне пришлось написать

var asdfjkl = require('asdfjkl').default;

Для тех, кто нуждается в разъяснении, я нашел этот ответ полезным.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Импорт и экспорт - это функции из ECMAScript 6 (http://es6 -features.org / # ValueExportImport ), поэтому я предполагаю, что вы не используете какой-либо компилятор Javascript (например, Babel https://babeljs.io/docs/en/)).Но если вы не хотите использовать какой-либо компилятор, вы можете просто изменить код для импорта библиотеки следующим образом:

var asdfjkl = require('asdfjkl');
0 голосов
/ 26 сентября 2019

Вы можете установить пакет npm, используя npm install --save

ex: npm install asdfjkl --save

...