node js link命令运行错误

时间:2016-10-05 16:52:50

标签: javascript node.js node-modules

我正在使用来自package.json的节点bin对象创建节点命令,但是由于microsoft javascript运行时这些命令无法执行。如何指向节点环境

{ 
"name": "test",
 "version": "1.0.0",
 "description": "",
  "main": "index.js",
 "scripts": {
  "test": "echo \"Error: no test specified\" && exit 1"
  },
 bin":{
"runMy":"index.js"
 },
 "author": "",
"license": "ISC"
}

index.js文件有console.log(" Happi")..

我使用npm link命令来"链接"命令全局链接命令。

当我运行" runMy"命令我得到微软错误 enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以尝试一些可以解决问题的方法。我没有Windows来测试它,但这是你可以尝试的:

首先,确保添加一个shebang行作为脚本的第一行:

#!/usr/bin/env node

所以脚本看起来像这样:

#!/usr/bin/env node
console.log("Happi");

请注意,shebang行之前没有空格或任何内容 - “#”哈希字符是文件的第一个字符。

Windows系统不使用该行 - 它在类Unix系统上使用 - 但Node的cmd-shim应该在看到该行时在Windows上安装正确的包装器。

我不确定运行npm link是否足够或正在运行npm install ...安装该模块是否需要让cmd-shim生效。

您可以尝试的另一件事是改变:

"runMy": "index.js"

为:

"runMy": "node index.js"

这应该在package.json的“scripts”部分中有效。我不确定这是否适用于“bin”部分。

还有一个wrap-cmd模块,可让您手动包装脚本,请参阅https://www.npmjs.com/package/wrap-cmd

最后,您可以编写自己的.cmd或.bat文件来运行“node your-script.js”。 example.bat文件可能如下所示:

@echo off
node c:\path\to\your_program.js

只要你的PATH中有节点,它就应该有效。