#javascript #npm #npm-install #yarnpkg
#javascript #npm #npm-install #yarnpkg
Вопрос:
Контекст: я пытаюсь использовать 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 в один файл для доставки в браузер. Они не предполагают, что вы собираетесь загружать модули непосредственно в браузер.