nodejs 怎么获取 node_modules/.bin 目录

简而言之,吾辈使用 golang 写了一个 cli 工具,但希望能同时发布到 npm 上。

现在面临的主要问题是如何获取 node_modules/.bin 目录,以便在 npm/yarn 安装时写入一些自定义的命令。

主要包括以下情况

  • 开发环境:当前包本身,可以直接通过 npm bin 拿到
  • 安装到项目中:使用 npm bin 拿到的是 node_modules/<包名>/node_modules/.bin 目录
  • 安装到全局:没有思路。。。但应该是固定的

还是吾辈的思路错了,需要用 bin.js 再包一层之类的?


两种可能的备选方案

  1. 使用 js 再包一层,这种方式的主要问题是
  2. 动态修改 package.json,添加 bin 的值

确认包一层 bin.js 可用,但,实在是有点蠢。。。
https://github.com/rxliuli/li...


失败,包了一层之后对于需要参数的情况就不适用了,下面这段代码不知道为什么总是没有正常执行。。。

execFileSync(
  path.resolve(__dirname, '../.cache/ebook-batch-converter.exe'),
  ['-i', '~/OneDrive/电子书/', '-o', '~/输出'],
  {
    stdio: 'inherit',
  },
)

可以看到,直接运行命令的时候参数有用,而包一层 bin.js 就不行了
image.png

测试了一下其他的 cli 程序,应该是吾辈的 cli.exe 本身有什么问题,具体代码在:https://github.com/rxliuli/eb...

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