首页 文章

node js link命令运行错误

提问于
浏览
0

我正在使用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"命令时,我得到以下微软错误
enter image description here

enter image description here

1 回答

  • 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中有节点,它就应该可以工作 .

相关问题