nodejs 怎么获取 node_modules/.bin 目录

发布于 2022-09-13 00:39:48 字数 1134 浏览 22 评论 0

简而言之,吾辈使用 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...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文