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并添加以下属性

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐