尝试从另一个JavaScript文件导入时,出现此错误SyntaxError: Cannot use import statement outside a module
。这是我第一次尝试这样的事情。主文件是main.js
,模块文件是mod.js
。
main.js:
import * as myModule from "mod";
myModule.func();
mod.js:
export function func(){
console.log("Hello World");
}
我该如何解决?谢谢
答案 0 :(得分:12)
为了使用导入语法(ESModules),您需要在package.json中设置以下内容:
{"type": "module" }
如果使用的Node版本早于13,则在运行程序时需要使用--experimental-modules标志
node --experimental-modules program.js
并在package.json中添加{“ type”:“ module”}
希望有帮助!
答案 1 :(得分:5)
使用commonjs语法而不是es模块语法:
module.exports.func = function (){
console.log("Hello World");
}
和
const myMod = require("./mod")
myMod.func()
否则,如果要使用es模块,则必须按照Achraf Ghellach的建议进行操作
答案 2 :(得分:1)
我最近遇到了这个问题。此解决方案类似于评分最高的答案,但我发现某些方法对我有用。
在与您的模块相同的目录中创建一个 package.json 文件并添加 "type":"module"
。然后使用导入 {func} from "./myscript.js";
。使用 node 运行时导入样式有效。
答案 3 :(得分:0)
除了上面的答案,请注意默认情况下(如果省略“type”)“type”是“commonjs”。因此,当它是“模块”时,您已经明确指定了类型。不能在模块外使用 import 语句。