如果我创建了一个最小package.json
文件:
{
"name": "cli-test",
"version": "1.0.0",
"bin": "index.js",
"main": "index.js"
}
和index.js
文件:
#!/usr/bin/env node
console.log("Hello")
并运行npm install
,为什么npm
没有为我的./node_modules/.bin/cli-test
文件创建index.js
符号链接? The package.json documentation在“bin”上说这个:
在安装时,npm会将该文件符号链接到
prefix/bin
以进行全局安装,或./node_modules/.bin
进行本地安装。
如果我npm install -g
,则会创建一个符号链接,但我不想进行全局安装。我正在使用节点6.10.3和npm 3.10.10。也尝试使用npm 5.0.4。
答案 0 :(得分:6)
在包目录中运行npm install
(这是您正在做的事情)只安装包的依赖项,而不是包本身:
npm install (在包目录中,没有参数):
在本地node_modules文件夹中安装依赖项。
(来自npm help install
)
您引用的文档是指正在安装的软件包本身。
我通常将可执行脚本放在包目录的./bin
中,因此我可以直接执行它们,并从package.json
引用它们:
"bin" : { "my-cool-cli" : "./bin/my-cool-cli" }