Почему мне нужно использовать относительный путь к установленной библиотеке?

#javascript #npm #npm-install #yarnpkg

#javascript #npm #npm-install #yarnpkg

Вопрос:

Контекст: я пытаюсь использовать Editor.js библиотека для личного проекта

Editor.js документация

Есть каталог проекта :

введите описание изображения здесь

Есть package.json :

 {
  "name": "quicknoteapp",
  "version": "1.0.0",
  "description": "",
  "main": "myApp.js",
  "scripts": {
    "test": "echo "Error: no test specified" amp;amp; exit 1",
    "start": "electron ."
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@editorjs/editorjs": "^2.19.0",
    "electron": "^10.1.5",
    "menubar": "^9.0.1"
  }
}
  

Мой index.html :

 <script type="module" src="main.js"></script>
  

И я импортирую свою библиотеку из main.js :

 import EditorJS from '@editorjs/editorjs';
  

Наконец, консоль выдает эту ошибку :

 TypeError: Module specifier, '@editorjs/editorjs' does not start with "/", "./", or "../". Referenced from file:///Users/charles/Desktop/QuickNoteApp/main.js
  

Хорошо, мне нужно добавить относительный путь при импорте модуля. Но мне не нравится это делать.
Почему мне нужно использовать относительный путь к установленной библиотеке?

Почему я не могу сделать то же самое, что и документация? Что я делаю не так во время настройки проекта? Я не думаю, что это нормально добавлять путь к каждому сценарию. Если нет, то зачем использовать npm … и получил папку node_module.

Ответ №1:

NPM предназначен для управления пакетами для Node.js не для веб-браузеров.

Веб-браузеры не Node.js . Они не поддерживают Node.js ‘функции разрешения пути к модулю (которые включают поиск в нескольких каталогах подходящих файлов: веб-браузеры не имеют доступа к спискам каталогов, только к URL-адресам).

В инструкциях предполагается, что вы используете такой инструмент, как Webpack, который использует Node.js объединить модули JS в один файл для доставки в браузер. Они не предполагают, что вы собираетесь загружать модули непосредственно в браузер.