如果这是一个基本问题,我很抱歉。我是JavaScript新手,搜索后找不到答案。
我正在尝试运行文件 f1.js:
import abc from "./f2.js"
console.log(abc);
f2.js 如下所示:
export let abc = 1
当我试图使用命令< code>node f1.js运行f1.js时,它抛出一个错误:< code >语法错误:不能在模块外使用import语句
我见过其他人在html中运行多个文件并指定type=module。我的问题是,我可以在没有html文件的情况下这样做,而是使用node运行它吗?
提前谢谢。
Node. js有两个模块系统:Common JS模块和ECMAScript模块。
作者可以通过. mjs文件扩展名、pack.json“type”字段或--input-type标志告诉Node.js使用ECMAScript模块加载器。在这些情况之外,Node.js将使用Common JS模块加载器。
来源
要在node.js中使用导入/导出语句,您必须使用ECMAScript模块加载器。在您的示例中,最简单的解决方案是将文件扩展名改为"。mjs”。此外,正如@Konrad在评论中提到的,您必须在“abc”周围使用括号:
import {abc} from "./f2.js"