2017-01-21 8 views
1

Ich versuche, ein Projekt zu machen, das ich auf Mac OS unter Windows programmiert habe, und es benutzt Electron. Ich habe versucht, es so laufen:Laufendes Elektron unter Windows

node node_modules\.bin\electron 

und es funktioniert nicht:

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 in dieser Art und Weise funktioniert:

>node .\node_modules\.bin\webpack --version 
Hash: a9840b6c5503dc0a037c 
Version: webpack 1.13.3 

Irgendwelche Ideen, was das Problem mit Elektronen und/oder wie man es repariert? Das Skript enthält diese:

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

Antwort

1

Sie können Electron unter Windows laufen wie folgt:

> node_modules\.bin\electron.cmd 

Aber da man Sie sowohl macOS und Windows entwickeln möchte, sollte nur ein NPM Skript zu Ihrem package.json hinzufügen :

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

Dann können Sie den gleichen Befehl verwenden Sie es auf jedem Betriebssystem ausgeführt wird:

> npm run app 
0

Das Problem war, dass, als ich meinen Code von einem Mac zu einem Win 10-Computer kopiert hatte, weil ich unfertige Änderungen hatte ich nicht kopieren wollte, kopierte ich auch die node_module, also hatte ich den Mac/Linux/Unix diejenigen, die Dateien enthalten, die einen einfachen Namen in .bin haben und den Shebang verwenden, um den richtigen Interpreter aufzurufen.

Sobald ich die node_module löschte und ich neu installierte, in der. Bin, habe ich diese einfachen Namen Dateien aber auch .cmd Dateien. Die Ebene Elektron sieht wie folgt aus:

#!/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" "[email protected]" 
    ret=$? 
else 
    node "$basedir/../electron/cli.js" "[email protected]" 
    ret=$? 
fi 
exit $ret 

während electron.cmd sieht wie folgt aus:

@IF EXIST "%~dp0\node.exe" (
    "%~dp0\node.exe" "%~dp0\..\electron\cli.js" %* 
) ELSE (
    @SETLOCAL 
    @SET PATHEXT=%PATHEXT:;.JS;=;% 
    node "%~dp0\..\electron\cli.js" %* 
)