在使用
commander
和inquirer
的时候,发现最新版本的inquirer
不支持require
的方式,而commander
还是require
方式导入,导致在一个js文件中需要同时使用esm
和cjs
两种导入方式
node支持esm
node
v14版本之后,支持在package.json
中定义 "type": "module"
, 即可使用import
导入。
同时支持两种模式
设置type
为module
时,之前的require
写法无法支持,需要使用createRequire
解决
import { createRequire } from "module";
const require = createRequire(import.meta.url);
const program = require("commander");
import inquirer from "inquirer";