如何在安装时直接执行“npm link”

我有一个内部项目,我想用bin命令链接到一个文件。 喜欢期待这个package.json

 { "name": "my-project", "bin": { "cli-name": "./bin/my-executable.js" }, "dependencies": { "node-red": "^1.0.0" } } 

执行npm install ,所有的依赖关系都会被安装,并且node-redbinconfiguration也会被创build。

但我自己的bin将被完全忽略。 在cmd不能使用cli-name 。 第二步也需要执行npm link 。 然后cli-name将在控制台中作为命令使用。 我甚至尝试使用npm linknpm postinstall脚本,但后来我得到了一个循环…

有没有一种方法可以在npm install上一步完成?

似乎实际上没有内置的方式来自动执行这个任务。 所以我直接向npm创build了这个function的请求。 似乎可以执行像npm il这样的新命令。

当这个或另一种方式可用时,我会在这里更新这个。

https://github.com/npm/npm/issues/15999

你可以尝试改变你的package.json是这样的:

 { "name": "my-project", "script": { "cli-name": "./bin/my-executable.js", "postinstall": "npm run cli-name" }, "dependencies": { "node-red": "^1.0.0" } } 

然后运行:

 npm install 

你可以在你的package.json创build一个脚本,在一个命令中执行这两个任务,如下所示:

 { "name": "my-project", "bin": { "cli-name": "./bin/my-executable.js" }, "scripts": { "install-link": "npm install && npm link my-project" }, "dependencies": { "node-red": "^1.0.0" } } 

然后运行npm run install-link ,它将运行这两个命令。

npm-link的确是为了不同的目的。 你做npm安装的那一刻,你应该可以在命令行中使用它。

npm链接用于将您当前的开发文件夹链接到您的软件包的安装目录。 这是因为你正在改变你的开发文件夹,它已经自动在cli上可用,你不必重新安装。

安装后,尝试去usr / local / bin < – 这是它应该在哪里。 如果你在这里找不到我的executable.js。 然后在安装过程中出现问题。

为了运行global二进制( bin )模块,您需要全局安装它。

npm -g install

https://bretkikehara.wordpress.com/2013/05/02/nodejs-creating-your-first-global-module/

另一个select(如果你在Linux上)是使用$(npm bin)/<module>如果它没有全局安装的话。