本地npm安装不会为"bin"可执行文件创建符号链接

dan*_*elo 4 node.js npm-install

如果我创建一个最小package.json文件:

{
  "name": "cli-test",
  "version": "1.0.0",
  "bin": "index.js",
  "main": "index.js"
}
Run Code Online (Sandbox Code Playgroud)

和一个index.js文件:

#!/usr/bin/env node
console.log("Hello")
Run Code Online (Sandbox Code Playgroud)

并运行npm install,为什么不为我的文件npm创建./node_modules/.bin/cli-test符号链接index.jspackage.json文档在"bin"上说明了这一点:

在安装时,npm会将该文件符号链接到prefix/bin全局安装或./node_modules/.bin 本地安装.

如果我这样做npm install -g,则会创建一个符号链接,但我不想进行全局安装.我正在使用节点6.10.3和npm 3.10.10.也试过npm 5.0.4.

rob*_*lep 6

npm install在包目录中运行(这是你正在做的)只安装包的依赖项,而不是包本身:

npm install(在包目录中,没有参数):

在本地node_modules文件夹中安装依赖项.

(来自npm help install)

您所引述的文件指的是包装本身正在安装.

我通常将可执行脚本放在./bin包目录中,因此我可以直接执行它们,并从package.json以下位置引用它们:

"bin" : { "my-cool-cli" : "./bin/my-cool-cli" }
Run Code Online (Sandbox Code Playgroud)