我试图让我在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" %* )