【问题标题】:Execute a single Node.js file in Windows command from anywhere从任何地方在 Windows 命令中执行单个 Node.js 文件
【发布时间】:2016-07-01 04:31:57
【问题描述】:

我在c:\scripts 中有一个 Node.js 文件,并希望通过node my-file.js 从任何地方在 Windows 命令中执行它们。这是执行bat文件的一种要求,我可以将文件夹放在%PATH%中。我尝试在%NODE_PATH% 中包含c:\scripts,但它不起作用。

【问题讨论】:

    标签: javascript node.js windows path


    【解决方案1】:

    nodejs 有可执行文件的概念......例如包

    jslint
    

    一旦安装,就可以从任何地方直接执行......它使用 -g 标志安装,如下所示:

    npm install -g jslint
    

    就像普通包一样,它的代码安装在 env var 定义的目录中

    NODE_PATH
    

    此外,它的可执行文件位于 bin 目录中,该目录在初始 nodejs 安装期间默认添加到 PATH

    在 Linux 上

    type jshint
    jshint is /home/stens/node-v5.8.0/bin/jshint
    
    
    echo $NODE_PATH
    /home/stens/node-v5.8.0/lib/node_modules
    

    在 windows 上类似的情况只是检查你的 PATH 以查看 nodejs bin dir ... 在 linux 上它是相对于 $NODE_PATH 的位置

    更新:

    您可以将某个文件(Windows 等效于 chmod +x some-file 以使其成为可执行文件)放入 $PATH 中列出的目录中...例如在 linux 上(如果我发出)

    p>
    type jslint
    

    这是因为 PATH 包含 dir /home/stens/node-v5.8.0/bin ... 上面的命令输出:

    jslint is hashed (/home/stens/node-v5.8.0/bin/jslint)
    

    然后显示内容

    cat /home/stens/node-v5.8.0/bin/jslint

    #!/usr/bin/env node
    
    var main = require("../lib/main.js");
    
    main.runMain(main.parseArgs());
    

    你可以在第一行的 nodejs 代码中看到可执行文件

    #!/usr/bin/env node
    

    告诉系统使用节点执行它(不知道 Windows 的方式,但必须有类似的方式)

    所以它使用

    执行
    jslint blah input-blah parm-blah goes-blah here-blah
    

    希望这会提示您正确的方向

    【讨论】:

    • 我可以只执行一个文件而不使其成为%NODE_PATH%下的模块吗?
    • 是的,请参阅更新:
    • 谢谢,但我认为 Windows 命令不支持 #!/usr/bin/env node 之类的标记。
    猜你喜欢
    • 2019-08-13
    • 2020-11-24
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多