繁体   English   中英

package.json,用于最小的命令行实用程序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM