2015-12-23 21 views
8

Ich versuche zu entwickeln, eine wenig Elektronen angular2 Anwendung basierend auf this tutorialWebpack kann nicht Modul ‚Elektron‘

Es scheint, sie ist ein Fehler mit der Bündelung von webpack, weil ich kann das Elektron einer Fernbedienung/Import in meinem Renderer-Komponente.

in meinem AppComponent ich nach dem

import {remote} from 'electron'; 

Mein Webpack Config

var path = require('path'); 
var webpack = require('webpack'); 
var CommonsChunkPlugin = webpack.optimize.CommonsChunkPlugin; 
var webpackTargetElectronRenderer = require('webpack-target-electron-renderer'); 

var config = { 
    debug: true, 

    devtool: 'source-map', 

    entry: { 
    'angular2': [ 
    'rxjs', 
    'reflect-metadata', 
    'angular2/core', 
    'angular2/router', 
    'angular2/http' 
    ], 
    'app': './src/app/renderer/bootstrap' 
}, 

    output: { 
    path: __dirname + '/build/', 
    publicPath: 'build/', 
    filename: '[name].js', 
    sourceMapFilename: '[name].js.map', 
    chunkFilename: '[id].chunk.js' 
    }, 

    resolve: { 
    extensions: ['','.ts','.js','.json', '.css', '.html'], 
    packageMains: ['webpack', 'browser', 'web', 'browserify', ['jam', 'main'], 'main'] 
    }, 

    module: { 
    loaders: [ 
     { 
     test: /\.ts$/, 
     loader: 'ts', 
     exclude: [ /node_modules/ ] 
     } 
    ] 
    }, 

    plugins: [ 
    new CommonsChunkPlugin({ name: 'angular2', filename: 'angular2.js', minChunks: Infinity }), 
    new CommonsChunkPlugin({ name: 'common', filename: 'common.js' }) 
    ] 
}; 

config.target = webpackTargetElectronRenderer(config); 
module.exports = config; 

Webpack führt den folgenden Fehler

ERROR in ./src/app/renderer/components/app/app.ts 
(1,22): error TS2307: Cannot find module 'electron'. 
+0

Ich wollte nur erwähnen, dass dieser Fehler auch passieren kann, wenn man wieder auf eine ältere Version von Elektron zurückgreift (zB v0.30.6 für Unterstützung für Serialport-Elektron) immer noch mit 'var app = require ('app');' usw. anstelle von 'const electron = require ('electron');' - siehe https://github.com/atom/electron/blob/v0.30.6 /docs/tutorial/quick-start.md – iX3

Antwort

4

es Gelöst

const electron = require('electron'); 
const remote = electron.remote; 
+1

Ich arbeite nicht für mich ... Ich bekomme 'Syntaxfehler in der Nähe von unerwarteten Token (' 'var electron = require ('./')' ... irgendeine Idee? (Ich benutze angular2 mit der neuesten CLI basierend auf dem Webpack) – daveoncode

+0

Das funktioniert nicht für mich, immer noch 'Uncaught Error: Kann das Modul" electron "' nicht finden – Hum4n01d

-1

Sind Sie neu in TypeScript? Hast du es installiert? Sie können es durch installieren:

npm install -g typescript 

Ihre Lösungen ist ein Java-Skript-Lösungen, die eine ok Hack ist, wenn das ist, was Sie suchen, aber wenn Sie Typoskript verwenden möchten, dann sollten Sie in der Lage sein, es zu machen Arbeit mit 'Import'.

das Tutorial Sie in: https://www.npmjs.com/package/typescript

Überprüfen Sie auch: TS2307: Cannot find module 'angular2/core' while importing Angular2 on TypeScript

0

Try target: "electron-renderer" auf dem Boden des module.exports Objekt in Ihrer webpack Config hinzuzufügen. (meine wurde über ng eject über die Angular CLI erstellt)

Verwandte Themen