5

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

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

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

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

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

为了实现这一目标,我需要执行哪些步骤?

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

4

1 回答 1

11

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

#!/usr/bin/env node

require("./../src/cli/cli.js").interpret(process.argv);

约定说将此文件放在项目根目录的bin目录中。然后你只需要更新你的package.json文件来告诉它在哪里可以找到你的可执行文件:

{
    "bin": {
        "jshint": "./bin/jshint"
    }
}

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

于 2013-01-25T07:51:34.040 回答