【发布时间】: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
我在c:\scripts 中有一个 Node.js 文件,并希望通过node my-file.js 从任何地方在 Windows 命令中执行它们。这是执行bat文件的一种要求,我可以将文件夹放在%PATH%中。我尝试在%NODE_PATH% 中包含c:\scripts,但它不起作用。
【问题讨论】:
标签: javascript node.js windows path
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%下的模块吗?
#!/usr/bin/env node 之类的标记。