Node CJS与ESM相关问题
-
在Node环境中执行倒
import xx from xx
模块时报错 “Uncaught SyntaxError: Unexpected identifier” ,是因为执行的node
版本过低,不支持ESM
语法,在v13.2.0
以前,Node
只支持CJS
-
Node
升级后运行import xx from xx
依然报相关错误 “SyntaxError: Cannot use import statement outside a module”,是因为默认情况下,Node
不支持以.js
扩展名结尾的内部文件的导入和导出。可以将文件后缀设为.mjs
,让其支持ESM
,或者修改package.json
文件使其包含 "type":"module"
tip: Node
在v16
版本后才默认支持ESM
,在v16
之前v13.2.0
之后需要使用--experimental-modules
选项来激活