2017-04-11 17 views
0

webpackとelectronを使用しているプロジェクトがあります。電子プレビルドを使用していたときと同じように、最新バージョンの電子を使用するようにアプリケーションを更新しました。最新のバージョンに更新して以来、私は今このエラーのために私のアプリをコンパイルすることができません。私は編集webpack.configを示唆して他のSOの記事からいくつかの提案を試してみましたが、私はまだ同じfsがエラーが見つかりません取得webpackがモジュール "fs"を見つけることができません

node: { 
fs: 'empty' 
    }, 

を追加しました。私も目標を電子に設定しようとしましたが、私はそれを行うとエラーが発生し、モジュールがロードされませんでしたが、この問題の回避策がありますか?私はこれがWebpack関連の問題か電子問題かどうかはわかりません。

は、ここに私のwebpack.config

var webpack = require('webpack'); 

//Loaders & Webpack config 
module.exports = { 
    entry: { 
    app: ['webpack/hot/dev-server', './app/app.js'], 

    }, 

    output: { 
    path: './app/dist', 
    filename: 'bundle.js', 
    publicPath: 'http://localhost:8080/dist/' 
    }, 

    devServer: { 
    contentBase: './app', 
    publicPath: 'http://localhost:8080/dist/' 
    }, 

    module: { 
    loaders: [ 
     { 
     test: /\.jsx?$/, 
     loader: 'babel-loader', 
     exclude: /node_modules/, 
     query: { 
      presets: ['react', 'es2015'] 
     } 
     }, 
     { test: /\.css$/, 
     loader: 'style-loader!css-loader' 
     }, 
     { 
     test: /\.png$/, 
     loader: "file-loader" 
     }, 
     { 
     test: /\.jpg$/, 
     loader: "file-loader" 
     } 
    ] 
    }, 

node: { 
fs: 'empty' 
    }, 


    plugins: [ 
    new webpack.HotModuleReplacementPlugin(), 
    new webpack.IgnorePlugin(new RegExp("^(fs|ipc)$")) 
    ], 


} 

package.jsonあなたのWebPACK構成でtarget: 'electron-main'を設定

{ 
    "name": "factory", 
    "productName": "Factory", 
    "description": "", 
    "author": , 
    "version": "0.1.0", 
    "main": "main.js", 
    "devDependencies": { 
    "babel-core": "^6.8.0", 
    "babel-loader": "^6.2.4", 
    "babel-preset-es2015": "^6.6.0", 
    "babel-preset-react": "^6.5.0", 
    "bootstrap": "^4.0.0-alpha.4", 
    "bootstrap-css": "^4.0.0-alpha.5", 
    "bootstrap-sass": "^3.3.7", 
    "css-loader": "^0.23.1", 
    "electron-packager": "^5.2.1", 
    "electron-rebuild": "^1.1.3", 
    "exports-loader": "^0.6.4", 
    "file-loader": "^0.8.5", 
    "imports-loader": "^0.7.1", 
    "node-libs-browser": "^1.0.0", 
    "node-sass": "^4.5.2", 
    "resolve-url-loader": "^2.0.2", 
    "sass-loader": "^6.0.3", 
    "style-loader": "^0.13.2", 
    "url-loader": "^0.5.8", 
    "webpack": "^1.14.0", 
    "webpack-dev-server": "^1.14.1" 
    }, 
    "scripts": { 
    "start": "./node_modules/.bin/electron .", 
    "watch": "./node_modules/.bin/webpack-dev-server", 
    "build": "electron-packager ./ --platform=darwin,win32 --arch=x64 --prune --overwrite" 
    }, 
    "dependencies": { 
    "dragula": "^3.7.2", 
    "electron-prebuilt": "^0.37.2", 
    "electron-tabs": "^0.6.0", 
    "react": "^15.3.2", 
    "react-dom": "^15.3.2", 
    "react-onclickout": "^2.0.4", 
    "react-router": "^2.4.0", 
    "redux": "^3.6.0" 
    } 
} 
+0

目標を設定しなきゃ、メイト、そうでない場合は、ブラウザ環境を推測します – corvid

答えて

3

です。

1

ウェブワーカーと一緒にNWjsで作業するときも同様の問題がありました。まず、このようにモジュールに注釈を付け、あなたは次に等「ノードのWebKit」、「webworker」、「ノード」を右targetオプションを設定していることを確認します

externals:{ 
    "fs": "commonjs fs" 
} 

これは、としてそれをロードするためにWebPACKのを教えてくれます依存関係が既に環境内にあると仮定するのとは対照的に、モジュールです。

関連する問題