如何在 node 中运行 esm 模块
我们都知道前端有两种常见的模块化规范,一种是 ES6 模块 简称 ESM,一种是 Node.js 专用的 CommonJS 模块 简称 CJS,两者是不兼容的。
我最近在写 node 项目,整个项目是用 @nest/cli 起的,文件模块默认用的是 ESM。为了快捷验证我的爬虫,想直接在 node REPL 环境中单独运行,但总是报错。
研究了下,有 2 种方便快捷的方法可以在 node REPL 中跑 ESM。
第一种
直接将文件后缀从.ts
改为.mjs
:
1 | node crawl.mjs |
第二种
环境中分别安装 typescript 和 ts-node:
1 | npm install -g typescript |
修改tsconfig.json
:
1 | "module": "ESNext", /* Specify what module code is generated. */ |
修改package.json
:
1 | "type": "module", |
运行文件:
1 | ts-node --esm crawl.ts |