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

时间:2017-06-29 17:39:21

标签: node.js npm-install

如果我创建了一个最小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。

1 个答案:

答案 0 :(得分:6)

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

  

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

     

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

(来自npm help install

您引用的文档是指正在安装的软件包本身

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

"bin" : { "my-cool-cli" : "./bin/my-cool-cli" }