在Windows上运行电子

我试图让我在Windows上运行的Mac OS上编码的项目,它使用电子。 我尝试像这样运行它:

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 

任何想法是什么问题与电子和/或如何解决它? 脚本包含这个:

 #!/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) }) 

你可以像这样在Windows上运行Electron:

 > node_modules\.bin\electron.cmd 

但是,既然你想在macOS和Windows上开发,你只需要在你的package.json添加一个NPM脚本:

 "scripts": { "app": "electron ." } 

然后您可以使用相同的命令在任何操作系统上运行它:

 > npm run app 

问题是,当我把我的代码从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" %* )