如何在Node.js中启用ES模块

833 阅读1分钟

如何启用Node.js中的`import`语法?

现在许多教程使用import XXX from 'XXX' (ES Modules)语法,而不是const XXX = require('XXX') (CommonJS)语法。

如果你把它添加到你的Node.js应用程序中,它将无法工作。你会得到一个类似这样的错误。

unexpected identifier error

unexpected identifier..

解决这个问题的方法之一是使用Babel。如果你已经为你的项目设置了Babel,这应该已经为你工作了。

但你现在应该不再需要Babel了,因为Node对ES模块有实验性的支持,既然是实验性的,要启用它,你必须做3件事。

首先,安装最新版本的Node.js。它有最新、最棒的功能。

第二,在你的package.json 文件中添加"type": "module" 行。

第三,在调用nodejs 时使用--experimental-modules 标志。

node --experimental-modules app.js

你应该就可以了!

另一种方法是避免在你的package.json 文件中添加"type": "module" 行,而是将你的app.js 文件(或其他)重命名为app.mjs

注意,现在require() 语法将停止工作。

对于旧的Node.js版本,可能不支持这个标志,我建议检查一下esm npm模块