使用模块创建自定义终端命令

时间:2017-01-06 01:06:21

标签: npm

我正在编写一个生成必要的redux文件的节点模块。我的目标是让最终用户运行npm install --save redux-file-gen,然后直接从终端运行redux generate store,而不是node run ....

以下是我package.json

的重要部分
{
  "name": "redux-file-gen",
  "version": "1.0.8",
  "description": "Generates necessary files for react-redux application",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
  },
  "preferGlobal": "true",
  "bin": {
    "redux": "index.js"
  },
  "dependencies": {
    "colors": "^1.1.2",
    "shelljs": "^0.7.5"
  }
}

我可以在自己的机器上运行npm link来创建自定义终端命令。但是当我发布到npm然后将其安装在另一台机器上时,redux命令是未定义的。

我尝试使用postinstall为npm运行npm link,但这不起作用。

截至目前,为了运行我的生成器,用户必须运行

node node_modules/redux-file-gen/index.js

任何人都知道如何解决这个问题?

以下是节点模块的link

1 个答案:

答案 0 :(得分:0)

我弄明白答案是什么。为了能够在终端中使用<!DOCTYPE html> <html> <head> <script data-require="angular.js@1.4.7" data-semver="1.4.7" src="https://code.angularjs.org/1.4.7/angular.js"></script> <script src="script.js"></script> </head> <body ng-app='app'> <div ng-controller="ListCtrl"> <h1> {{parseInt(value)}}</h1> </div> </body> </html>命令,我必须全局安装包。所以,我只需要运行

redux

这将允许我使用自定义命令。