NPM 命令行工具 - 命令不起作用

问题描述 投票:0回答:1

我正在开发 CLI 工具。我正在使用 macOS。我在本地运行时使用的是

node index.js <command>
。我决定将其发布为 npm 包,但我在
bin
package.json
部分中定义的命令将不起作用。

在我的

package.json
中,我定义了
bin
如下:

  "bin": {
    "scaffold": "index.js"
  },

我真的不知道如何导航,而且很陌生。将不胜感激任何帮助。

我已经全局安装了该软件包。

尝试通过运行帖子中的一些命令来排除故障,以下是结果(如果有帮助的话):

运行

npm bin -g
结果:

Unknown command: "bin"

To see a list of supported npm commands, run:
  npm help

运行

npm root -g
结果:

/opt/homebrew/lib/node_modules

运行

which scaffold
结果:

/opt/homebrew/bin/scaffold

运行

npm list -g project-scaffold
结果:

/opt/homebrew/lib
└── [email protected]

这是包含存储库链接和所有内容的包:https://www.npmjs.com/package/project-scaffold

谢谢你。

node.js npm command-line command-line-interface
1个回答
0
投票

想通了。有一个愚蠢的 if 语句手动检查文件路径的 argv 数组的第一个索引。如果从

node index.js <command>
切换到
scaffold <command>
,这将不起作用,因为第一个索引不再指向 if 语句正在查找的内容,从而永远不允许 runCLI() 运行。我真丢脸。

罪魁祸首:

if (process.argv[1] === fileURLToPath(import.meta.url)) {
  runCLI();
}
© www.soinside.com 2019 - 2024. All rights reserved.