Node.js 要求 ES6 模块采用.mjs 作为后缀。只有.mjs后缀的文件可以使用import或者export命令。
如果不希望将后缀名改成.mjs,可以在项目的package.json文件中,指定type字段为module。
{ "type": "module" }
这时还要使用 CommonJS 模块,那么需要将 CommonJS 脚本的后缀名都改成.cjs。
ES6 模块与 CommonJS 模块尽量不要混用。require()命令不能直接加载 ES6 模块,因为它是同步加载。
ES6 模块的import命令可以加载 CommonJS 模块,但是只能整体加载,不能只加载单一的输出项。
// 正确 import packageMain from 'commonjs-package'; // 报错 import { method } from 'commonjs-package';
加载单一的输出项,可以写成下面这样。
import packageMain from 'commonjs-package'; const { method } = packageMain;
声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。