![](/img/trans.png)
[英]How to pass command-line variable in package.json script, in NPM?
[英]package.json for minimal command-line utility
我正在尝试创建命令行实用程序。 但是,npm install(否-g)不会链接可执行文件。
我的期望是npm install将在本地安装我的可执行文件。
我的package.json看起来像:
{
"name": "test-bin",
"version": "0.1.0",
"description": "Test bin",
"bin": "./bin/test-bin.js",
"main": "./index.js",
"author": "",
"license": "ISC",
"repository": {
"type": "git",
"url": "file:///tmp/test-bin.git"
}
}
index.js是:
module.exports = function() {
console.log('invoked')
}
bin / test-bin.js是:
require('../')()
如果我运行npm install,则会创建node_modules,但不会创建.bin
但是,如果在其他地方使用第一个项目作为依赖项创建另一个项目:
{
"name": "test-test-bin",
"version": "0.1.0",
"description": "Test test bin",
"author": "",
"license": "ISC",
"repository": {
"type": "git",
"url": "file:///tmp/test-test-bin.git"
},
"dependencies": {
"test-bin": "file:///Users/you/somewhere/test-bin"
}
}
然后npm install链接该项目中的可执行文件:
node_modules/.bin/test-bin
npm文档说,关于“ bin”:
要使用此功能,请在package.json中提供一个bin字段,该字段是命令名到本地文件名的映射。 在安装时,npm会将文件符号链接到前缀/ bin(对于全局安装),或./node_modules/.bin/(对于本地安装)。
它是按设计的,还是我缺少什么?
在软件包文件夹中运行npm install
将安装其依赖项,但它不会安装软件包本身声明的任何二进制文件(您可以争论一下这是什么意思)。
仅当该软件包作为软件包安装时才发生(使用npm install package-name
或作为其他软件包的依赖项)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.