我正在使用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命令“link”命令全局链接命令 .
当我运行"runMy"命令时,我得到以下微软错误
1 回答
您可以尝试一些可以解决问题的方法 . 我没有Windows来测试它,但这是你可以尝试的:
首先,确保添加一个shebang行作为脚本的第一行:
所以脚本看起来像这样:
请注意,在shebang行之前没有空格或任何内容 - “#”哈希字符是文件的第一个字符 .
Windows系统不使用该行 - 它在类Unix系统上使用 - 但Node的cmd-shim应该在看到该行时在Windows上安装正确的包装器 .
我不确定运行
npm link
是否足够或运行npm install ...
来安装cmd-shim生效所需的模块 .你可能尝试的另一件事是改变:
至:
这应该在package.json的“scripts”部分中工作 . 我不确定这是否适用于“bin”部分 .
还有一个wrap-cmd模块可以让你手动包装你的脚本,参见https://www.npmjs.com/package/wrap-cmd
最后,您可以编写自己的.cmd或.bat文件来运行“node your-script.js” . example.bat文件可能如下所示:
只要PATH中有节点,它就应该可以工作 .