直接调用全局安装的Node.js模块

Gol*_*den 5 executable module node.js npm

假设我想为Node.js编写一个全局安装的模块.我不想写任何C++(或其他东西),而是简单的Node.js代码.

基本上,这很容易.只需编写模块,然后使用即可安装npm install -g.

现在,大多数全局安装的模块都可以直接调用它们,例如,您可以express在命令提示符下键入并运行Express的全局安装的应用程序引导程序.

现在我的问题是:我如何实现这一目标?

如果我只是全局安装一个模块,这不会使其中一个文件可用作可执行文件,或者将该文件放到PATH.

为实现这一目标,我需要采取哪些步骤?

所以我的问题基本上是:从"普通"Node.js模块创建全局可用的可执行文件需要做哪些步骤?

Jam*_*ice 11

您需要编写可执行文件.这是用户键入命令时将执行的操作.以下是JSHint的一个示例:

#!/usr/bin/env node

require("./../src/cli/cli.js").interpret(process.argv);
Run Code Online (Sandbox Code Playgroud)

Convention表示将此文件放在项目根目录中的bin目录中.然后,您只需要更新package.json文件,告诉它在哪里找到您的可执行文件:

{
    "bin": {
        "jshint": "./bin/jshint"
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,可以使用该jshint命令从终端运行可执行文件.当它运行时,它只需要另一个文件并调用其中的方法,通过任何命令行参数.