[英]Javascript Modules SyntaxError: Cannot use import statement outside a module
[英]Javascript modules - Cannot use import statement outside a module
我是 Javascript 的新手,我正在尝试从教程中学习模块。 在 Visual Studio Code/VScode 中有一个文件夹,其中有两个文件,script.js 和 external.js。
Script.js 从 external.js 导入内容并将文本打印到控制台。 当我使用 node.js 运行配置从 vs 代码运行 script.js 时,出现以下错误。 有人可以告诉我为什么会发生这种情况以及如何解决吗? 相比之下,Java 中的导入很简单。
import {keyValue} from './external.js';
^^^^^^
SyntaxError: Cannot use import statement outside a module
at wrapSafe (internal/modules/cjs/loader.js:1070:16)
at Module._compile (internal/modules/cjs/loader.js:1120:27)
外部.js:
export let keyValue = 1000;
脚本.js:
import {keyValue} from './external.js';
console.log(keyValue);
更新:节点版本 - v12.16.2,升级到 v14.4.0。
{ type: "module" }
添加到 package.json。{
...
scripts: "...",
type: "module"
}
.js
重命名为.mjs
.js
重命名为.mjs
,并使用附加参数--experimental-modules
运行。node --experimental-modules script.js
您还可以修复import statement outside a module
不使用 import语句,而是使用动态 import function 。
脚本.js
import("./external.js").then((module) => {
console.log(module.keyValue);
});
这种形式还支持await
关键字。
let module = await import('./external.js');
console.log(module.keyValue)
这是因为您使用的是 es6 模块,而不是 node 的默认模块系统,这是常见的 js。 您可以使用 babel 对其进行转译,也可以使用 .mjs 扩展名
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.