Node 生态包含两个不同的模块系统,ESM(ECMAScript 模块)和 CommonJS。两个模块系统彼此不兼容。
其是“SyntaxError:无法在模块外部使用 import 语句”错误
错误“SyntaxError:无法在模块外部使用 import 语句”是由于您尝试导入的文件正在使用 ESM 模块系统,而您尝试将其导入到的文件正在使用 CommonJS 模块而导致的系统。
例如:
import fs from "fs";
import {parse} from "@babel/parser";
ESM 使用import和export关键字分别包含其他模块中的代码并使其可用。CommonJS 使用require()函数包含其他模块的代码,并使用module.exports对象使代码可供其他模块使用。
要解决此问题,您必须
1.继续使用 CommonJS 模块系统并使用关键字require
2.或者将整个项目转换为使用 ESM 模块系统并使用关键字import
当然也可以Node 项目转换为使用 ESM 模块系统,打开文件package.json并添加以下属性