Node.js:语法错误:不能在模块外使用导入语句

Ser*_*ket 35 javascript import export node.js

SyntaxError: Cannot use import statement outside a module尝试从另一个 javascript 文件导入时出现此错误。这是我第一次尝试这样的事情。主文件是main.js,模块文件是mod.js.

主要.js:

import * as myModule from "mod";
myModule.func();
Run Code Online (Sandbox Code Playgroud)

模块.js:

export function func(){
    console.log("Hello World");
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?谢谢

Ach*_*ach 54

为了使用导入语法(ESModules),您需要在 package.json 中设置以下内容:

{"type": "module" }
Run Code Online (Sandbox Code Playgroud)

如果您使用的 Node 版本早于 13,则在运行程序时需要使用 --experimental-modules 标志

node --experimental-modules program.js
Run Code Online (Sandbox Code Playgroud)

并在 package.json 中添加 {"type": "module" }

希望能帮助到你 !

  • 不为我工作 (14认同)
  • **注意 - 在提供的代码末尾添加逗号** (3认同)

gau*_*168 13

使用 commonjs 语法而不是 es 模块语法:

module.exports.func = function (){
    console.log("Hello World");
}
Run Code Online (Sandbox Code Playgroud)

const myMod = require("./mod")
myMod.func()
Run Code Online (Sandbox Code Playgroud)

否则,如果你想使用 es 模块,你必须按照 Achraf Ghellach 的建议去做


kob*_*003 9

对于浏览器(前端) :在脚本标记内添加 type = "module" ie

<script src="main.js" type="module"></script>
Run Code Online (Sandbox Code Playgroud)

对于nodejs:在package.json文件"type": "module"中添加 ,

{
  "name": "",
  "version": "",
  "description": "",
  "main": "",
  "type": "module",
   ....
}
Run Code Online (Sandbox Code Playgroud)