我正在更新应用以使用webpack 1中的webpack 2,并且常规版本工作正常。当使用devServer并且只需要生成其中一个块时(这是一个电子应用程序,因此我有主要和渲染器块 - 两者都包含在常规构建中,并且dev服务器只包含渲染器)包括块)
所有东西都在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 :(得分:0)
所以似乎问题在于我将目标设置为electron
但是为网络构建。这似乎在webpack 1中有效,但在更新到webpack 2之后,它不再包含两个bundle中的运行时。
我采用的解决方案是有两个配置 - 一个用于电子(我的主要构建),一个用于web(在webpack配置中指定目标)