0

Я обновляю приложение, чтобы использовать webpack 2 из webpack 1, и обычная сборка отлично работает. Проблема, похоже, возникает при использовании devServer и требует только одного из сгенерированных блоков (это электронное приложение, поэтому у меня есть основные и рендеринговые куски - оба включены в регулярную сборку, а с сервером dev включен только блок рендеринга)Uncaught ReferenceError: require не определен - Webpack2

Все работает на webpack 1, но по какой-то причине время выполнения не включено в мои куски? Я пробовал переупорядочить их, но безрезультатно.

const HtmlWebpackPlugin = require('html-webpack-plugin'); 
const webpack = require('webpack'); 
const path = require('path'); 

module.exports = { 
    context: __dirname, 
    entry: { 
    main: './main.js', 
    renderer: './app/index.jsx' 
    }, 
    output: { 
     path: path.resolve(__dirname, './dist'), 
     filename: "[name].js" 
    }, 
    node: { 
    __dirname: false, 
    __filename: false 
    }, 
    devtool: 'cheap-eval-source-map', 
    target: 'electron', 
    module: { 
    loaders: [ 
     { 
     test: /(\.js$|\.jsx$)/, 
     exclude: /(node_modules|dist)/, 
     loader: 'babel' 
     }, 
     { test: /\.scss$/, loader: "style!css?modules!sass" }, 
     { test: /\.png$/, loader: "url?limit=100000" }, 
     { test: /\.jpg$/, loader: "file" } 
    ] 
    }, 
    resolve: { 
    extensions: ['.js', '.jsx', '.scss'], 
    modules: [path.resolve('./app'), 'node_modules'] 
    }, 
    plugins: [ 
    new HtmlWebpackPlugin({ 
    template: './app/index.html', 
    chunks: ['renderer'], 
    inject: 'body', 
    hash: 'true' 
    }), 
    new webpack.DefinePlugin({ 
     'process.env': { 
     'NODE_ENV': '"dev"' 
     } 
    }) 
    ], 
    devServer: { 
    contentBase: __dirname 
    }, 
    externals: { 
    'cheerio': 'window', 
    'react/addons': true, 
    'react/lib/ExecutionEnvironment': true, 
    'react/lib/ReactContext': true 
    } 
}; 

Кажется, один из кусков не входит должным образом:

/***/ }, 
/* 26 */ 
/***/ function(module, exports) { 

module.exports = require("url"); 

Почему это?

ответ

0

Так что, похоже, проблема была в том, что я установил цель в electron, но для веб-сайта. Казалось, что это работает в webpack 1, но после обновления к webpack 2 он больше не включает время выполнения в обоих пакетах.

Решение, которое я принял, состояло в том, чтобы иметь две конфигурации: одну для электрона (моя основная сборка) и одна для сети (указать цель в конфигурации webpack)