ts-node 如何启用 ESM
首先将
package.json
中的 type 设置为module
,以启用 Node.js 对 ES Modules 的支持另外,如果项目中没有配置 tsconfig.json,运行可能还会报错:
ReferenceError: exports is not defined in ES module scope
需配置 tsconfig.json :
{ "compilerOptions": { "target": "ES6", "module": "ESNext", "moduleResolution": "node" } }
如果使用的 ts-node 的版本号
>= v10.7.0
,可直接使用ts-node-esm
或ts-node --esm
命令如果不想每次都加参数,也可以在 tsconfig.json 中添加配置项实现自动化
{ "ts-node": { "esm": true } }
- 之后使用
ts-node
启动即可
如果使用的是之前的旧版本,使用
node --loader ts-node/esm ./src/index.ts
- 会有个试验特性的警告,如不想看到这个警告,可以再附加上一个参数
--no-wcarnings
,node --no-warnings --loader ts-node/esm ./src/index.ts
- 会有个试验特性的警告,如不想看到这个警告,可以再附加上一个参数
参考: