npm package.json定义了bin模块 - 找不到命令

时间:2017-05-19 01:54:58

标签: node.js npm npm-install package.json

我在我的package.json中定义的 bin 模块上获得command not found...为什么?我认为应该自动将本地命令映射到路径中。

在我的模块的package.json中:

  "bin": {
    "testme": "./misc/testme"
  },

./ misc / testme script:

#!/usr/bin/env node
console.log("this is a test");

它出现在node_modules / .bin目录

$ ls node_modules/.bin
acorn       escodegen    gulp        kue-dashboard  ncp                 semver               stylus
cake        esgenerate   gzip-size   lessc          nopt                shjs                 testme
cleancss    esparse      handlebars  make-plural    pretty-bytes        sshpk-conv           uglifyjs
coffee      esvalidate   image-size  messageformat  rc                  sshpk-sign           user-home
dateformat  express      jade        mime           retrieve-arguments  sshpk-verify         uuid
dot-object  geojsonhint  jsonlint    mkdirp         rimraf              strip-indent         watchr
errno       grunt        js-yaml     mustache       sails               strip-json-comments  which

但是,在npm install运行它之后,我得到了:

$ testme
bash: testme: command not found...

3 个答案:

答案 0 :(得分:3)

我认为只有在全局安装软件包时才能运行testme。为了运行此命令(没有全局安装),您必须npm run testme并将其添加到package.json文件中:

"scripts": {
    "testme": "./bin/testme"

此处有更多信息:http://2ality.com/2016/01/locally-installed-npm-executables.html

答案 1 :(得分:2)

有两种方法(我可以想到运行此命令): -

a(由@TAMAS讲述)。

 npm install -g testme 

 PATH = $PATH/your/project/dir/node_modules/.bin

 EXPORT PATH

答案 2 :(得分:0)

对我来说,必须在Windows上运行

npm链接

在命令开始执行之前,在我项目的根文件夹中

。我不知道它是否适用于其他操作系统