我有一个内部项目,我希望将命令链接到bin
的文件。就像期待这个package.json
:
{
"name": "my-project",
"bin": {
"cli-name": "./bin/my-executable.js"
},
"dependencies": {
"node-red": "^1.0.0"
}
}
执行npm install
时,将安装所有依赖项,并且也会创建bin
node-red
配置。
但我自己的bin
将完全被忽略。在cli-name
中无法使用cmd
。在第二步中也必须执行npm link
。然后cli-name
将在控制台中作为命令使用。我甚至尝试使用postinstall
npm
的{{1}}脚本,其中包含npm link
,但后来我得到了一个循环......
有没有办法在npm install
上一步完成?
答案 0 :(得分:1)
实际上似乎没有自动执行此任务的内置方法。所以我已经直接向npm
创建了此功能的请求。似乎可以实现像npm il
这样的新命令。
如果有这种或其他方式,我会在这里更新。
答案 1 :(得分:0)
您可以尝试将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
答案 2 :(得分:0)
您可以在package.json
中创建一个脚本,以便在一个命令中执行这两项任务,如下所示:
{
"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
,它将运行两个命令。
答案 3 :(得分:0)
npm-link真的是出于不同的目的。你进行npm安装的那一刻,你应该可以在命令行中使用它。
npm link用于将当前开发文件夹链接到软件包的已安装目录。这样,当您在开发文件夹中进行更改时,它可以自动在cli上使用,您无需重新安装。
安装完成后,尝试转到usr / local / bin< - 这就是它应该的位置。如果你在这里找不到my-executable.js。然后在安装过程中出现了问题。
答案 4 :(得分:0)
要运行global
二进制(bin
)模块,您需要全局安装。
npm -g install
https://bretkikehara.wordpress.com/2013/05/02/nodejs-creating-your-first-global-module/
另一个选项(如果你在linux上)是使用$(npm bin)/<module>
,如果它没有全局安装。
答案 5 :(得分:0)
尝试npm ln
。 npm文档的npm link
的别名在PowerShell 5上对我有用。