写工具库时的一点问题?

写了个 npm 工具 (就是 node_modules./bin 目录下的那种)

工具是用 ts 写的,代码里引入模块是用的 import 语法

所以 package.json 里写 type: "module"


但是,.bin/cli.js 文件里,用的又是 require 语法,得 type: "commonjs" 才能用'

#!/usr/bin/env node

require('../dist/index.js')

这种情况应该怎么处理呀?

阅读 2k
3 个回答

既然用 ts 写,就一定要转译,所以你配置一下 tsconfig.json,转译成 commonjs 就可以了。

然后 package.json 也不需要 type: "module"。当然你用 ESM 也可以,不过需要环境配合,目前不是很容易。

把用import语法的文件改成.mjs试试

交叉使用的场景如果不借助编译工具就只能改文件后缀,可以把 .bin/cli.js 改成 .bin/cli.cjs

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题