我假设您只是用一个将在客户端运行的脚本在一些HTML中声明js。就像那样
<script src="./myscript.js"></script>
为什么你不能使用
require
要求
是我们在Node.js(一个在浏览器外运行javascript的引擎)或任何其他采用
CommonJs modules
图案浏览器使用所谓的
ESModules
.
为什么在中更改type=“module”
package.json
没有解决这个问题吗?
这个
package.json
文件被浏览器完全忽略,它不会影响从script标记导入的javascript中的任何内容。
package.json
是node.js(和其他引擎)使用的文件。和
type="module"
在Node.js中使用
import
而不是
要求
,所以即使浏览器读取了它也不会修复。
我们如何在浏览器javascript中导入东西
首先,我不得不说,浏览器通常希望人们使用一些
bundling tool like webpack
.(bundler只是一个将所有.js文件转换为单个.js文件的程序),而不是直接导入模块,但如果您只想使用web浏览器,则可以:
-
在脚本标记中添加type=“module”。
<script type="module" src="./myscript.js"></script>
-
使用类似的东西
the live server extension of vscode
因为浏览器不能让.html文件完全访问您的文件,所以您需要在文件夹中模拟服务器。
-
所以现在你可以简单地使用
import {thing} from "./myscript.js"
这会奏效的。
如何使用
require.js
lib。
我不得不说,你不应该使用它,它被那些希望为node.js制作一些包在浏览器上工作的人使用。但如果一个人想使用只需要使用浏览器,他们必须记住,当我们这样做时
npm i requirejs
它创建并下载到
node_modules
文件夹,所以我们必须从那里导入。但同样,你不应该这样做来解决你的问题。坚持
进口
.