好,我知道了。它的文档记录很差,很难找到,但是我找到了导致 electron-start 在npm 的 npx 的 cmd shim 实用程序中在 windows 上工作的代码行。:
var ...
, shebangExpr = /^#\!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/
...
function writeShim (from, to, cb) {
// make a cmd file and a sh script
// First, check if the bin is a #! of some sort.
// If not, then assume it's something that'll be compiled, or some other
// sort of script, and just call it directly.
mkdir(path.dirname(to), function (er) {
if (er)
return cb(er)
fs.readFile(from, "utf8", function (er, data) {
if (er) return writeShim_(from, to, null, null, cb)
var firstLine = data.trim().split(/\r*\n/)[0]
, shebang = firstLine.match(shebangExpr) //<-- matched here
if (!shebang) return writeShim_(from, to, null, null, cb)
var prog = shebang[1]
, args = shebang[2] || ""
return writeShim_(from, to, prog, args, cb)
})
})
}
根据 npm on npx
( package.json > "bin"
),shebang-ingnode
可执行文件是“必需的”。这不是真的。虽然需要 shebang-ing,但可以在 Windows 上换出节点可执行文件。你可以在这里看到微光带任何shebang (维基百科上的 shim)。