写了个 npm 工具 (就是 node_modules./bin 目录下的那种)
工具是用 ts 写的,代码里引入模块是用的 import 语法
所以 package.json 里写 type: "module"
但是,.bin/cli.js 文件里,用的又是 require 语法,得 type: "commonjs" 才能用'
#!/usr/bin/env node
require('../dist/index.js')
这种情况应该怎么处理呀?
写了个 npm 工具 (就是 node_modules./bin 目录下的那种)
工具是用 ts 写的,代码里引入模块是用的 import 语法
所以 package.json 里写 type: "module"
但是,.bin/cli.js 文件里,用的又是 require 语法,得 type: "commonjs" 才能用'
#!/usr/bin/env node
require('../dist/index.js')
这种情况应该怎么处理呀?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
既然用 ts 写,就一定要转译,所以你配置一下 tsconfig.json,转译成 commonjs 就可以了。
然后 package.json 也不需要
type: "module"
。当然你用 ESM 也可以,不过需要环境配合,目前不是很容易。