如何使bin脚本可用于本地安装的npm包

时间:2016-08-26 09:07:06

标签: node.js npm bin

我在npm文档中读到你不能使用本地安装包的bin脚本。

那么,在本地安装时如何将gulp作为bin命令启动? 在本地安装时,我查看了gulp package.json和bin脚本,我找不到任何答案。

2 个答案:

答案 0 :(得分:1)

From NPMJS documentation:

  

要使用此功能,请在package.json中提供bin字段,该字段是命令名称到本地文件名的映射。在安装时,npm会将该文件符号链接到用于全局安装的前缀/ bin,或者用于本地安装的./node_modules/.bin/。

因此,您本地安装的软件包二进制文件将像这样执行

./bin/node_modules/.bin/the_binary

这是您想直接启动二进制文件。或者,如the scripts part of the documentation:

中所述
  

除了shell预先存在的PATH之外,npm run还将node_modules / .bin添加到提供给脚本的PATH中。

因此,您可以简单地编写一个像

这样的包装器脚本
scripts: {
  "build": "the_binary"
}

并像这样调用你的脚本

npm run build

<强>加成

  

从npm@2.0.0开始,您可以在执行脚本时使用自定义参数。 getopt使用特殊选项来分隔选项的结尾。 npm会将 - 之后的所有参数直接传递给你的脚本:

npm run test -- --grep="pattern"

答案 1 :(得分:0)

您可以使用 lpx https://www.npmjs.com/package/lpx

  • 运行在本地 node_modules/.bin 文件夹中找到的二进制文件
  • 从工作区中的任何位置运行在工作区根目录的 node_modules/.bin 中找到的二进制文件

如果在本地找不到二进制文件(即不像 npx),lpx 不会下载任何包

示例:lpx tsc -b -w 将使用本地打字稿包运行 tsc -b -w