上下文: 我正在尝试将Editor.js库用于个人项目
有项目目录:
有package.json:
{
"name": "quicknoteapp",
"version": "1.0.0",
"description": "",
"main": "myApp.js",
"scripts": {
"test": "echo \"Error: no test specified\" && 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文件夹。
答案 0 :(得分:0)
NPM旨在管理Node.js而不是Web浏览器的软件包。
Web浏览器不是Node.js。它们不支持Node.js的模块路径解析功能(涉及在多个目录中搜索匹配文件:Web浏览器无权访问目录列表,而只能访问URL)。
这些说明假定您使用的是Webpack之类的工具,该工具使用Node.js将JS模块捆绑到一个文件中,以交付给浏览器。他们不认为您将直接将模块加载到浏览器中。