我试图制作一个我在Mac OS上编码的项目在Windows上运行并使用Electron。我尝试像这样运行它:
node node_modules\.bin\electron
并且它不起作用:
module.js:471
throw err;
^
Error: Cannot find module './'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (C:\Users\pupeno\Documents\ProjectX\node_modules\.bin\electron:3:16)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
Webpack以这种方式运作:
>node .\node_modules\.bin\webpack --version
Hash: a9840b6c5503dc0a037c
Version: webpack 1.13.3
任何想法Electron的问题和/或如何修复它?该脚本包含:
#!/usr/bin/env node
var electron = require('./')
var proc = require('child_process')
var child = proc.spawn(electron, process.argv.slice(2), {stdio: 'inherit'})
child.on('close', function (code) {
process.exit(code)
})
答案 0 :(得分:1)
您可以在Windows上运行Electron:
> node_modules\.bin\electron.cmd
但是,既然你想在macOS和Windows上进行开发,你应该只为你的package.json
添加一个NPM脚本:
"scripts": {
"app": "electron ."
}
然后您可以使用相同的命令在任何操作系统上运行它:
> npm run app
答案 1 :(得分:0)
问题在于,当我将代码从Mac复制到Win 10机器时,因为我还没有完成更改,我也不想提交,我还复制了node_modules,所以我有了Mac / Linux / Unix包含.bin中具有普通名称的文件,并使用shebang调用正确的解释器。
一旦我删除了node_modules并重新安装,在.bin中,我得到了那些普通的名字文件,还有.cmd文件。普通电子看起来像这样:
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/../electron/cli.js" "$@"
ret=$?
else
node "$basedir/../electron/cli.js" "$@"
ret=$?
fi
exit $ret
虽然electron.cmd看起来像这样:
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\..\electron\cli.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\..\electron\cli.js" %*
)