将参数传递给 node.js package.json bin 命令或调试 bin 命令?

Lia*_*ell 7 node.js package.json

我想在调试模式下启动 bin 命令。但我似乎无法编写 --inspect-brk=3000 作为参数,因为它只想接受文件名并 npm 链接检查文件是否存在。

  "bin": {
    "mycommand": "index.js --inspect-brk=3000",
  }
Run Code Online (Sandbox Code Playgroud)

ENOENT:没有这样的文件或目录

有任何想法吗?我可能只是制作一个 debug.js 来启动传递 arg 并通过管道传输 stdin/stdout 的 index.js 。

Lia*_*ell 2

调试.js

#!/usr/bin/env node
// A wrapper to allow starting the index.js in debug mode port is 3000
const { spawn } = require('child_process')
var child = spawn('node', ['--inspect-brk=3000', 'index.js'], { stdio: 'inherit' })
Run Code Online (Sandbox Code Playgroud)

启动.json

        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "",
            "runtimeExecutable": "${workspaceFolder}/../Tools/someprogramthatrunsmine",
            "runtimeArgs": [
                "mycommand-debug",
                "someinputs"
            ],
            "cwd": "${workspaceFolder}",
            //"console": "integratedTerminal",
            "port": 3000
        }
    ]
Run Code Online (Sandbox Code Playgroud)

package.json bin 命令

  "bin": {
    "mycommand-debug": "debug.js"
  },
Run Code Online (Sandbox Code Playgroud)

运行npm link链接命令进行本地测试。

现在,当我的 index.js 代码由不同的运行时可执行文件运行时,单击 Vscode 中的“调试”按钮可以对其进行断点。