Javascript CommonChunkPlugin中的网页包错误:在正常模式下运行时,它';不允许使用非条目块
因此,当我尝试将我的应用程序拆分为1个application.js文件和1个libraries.js文件时,一切正常。当我尝试将其拆分为1个application.js文件和2个libraries.js文件时,在构建时会出现以下错误: CommonChunkPlugin中的Javascript CommonChunkPlugin中的网页包错误:在正常模式下运行时,它';不允许使用非条目块,javascript,webpack,Javascript,Webpack,因此,当我尝试将我的应用程序拆分为1个application.js文件和1个libraries.js文件时,一切正常。当我尝试将其拆分为1个application.js文件和2个libraries.js文件时,在构建时会出现以下错误: CommonChunkPlugin中的错误:在正常模式下运行时,不允许使用非条目块(库反应) 有人知道是什么导致了这个错误吗 我的网页包配置为 var webpack = require("webpack"); var ExtractTextPlugin = re
错误:在正常模式下运行时,不允许使用非条目块(库反应)
有人知道是什么导致了这个错误吗
我的网页包配置为
var webpack = require("webpack");
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var extractSass = new ExtractTextPlugin('main.css');
module.exports = {
module: {
loaders: [{
test: /\.jsx$/,
loader: 'babel',
exclude: ['./node_modules'],
query: {
presets: ['react', 'es2015']
}
}, {
test: /\.scss$/,
loader: extractSass.extract(['css', 'sass'])
}, {
test: /\.html$/,
loader: 'file?name=[name].[ext]'
}, {
test: /\/misc\/.*\.js$/,
loader: 'file?name=/misc/[name].[ext]'
}, {
test: /\.(png|jpg|jpeg|)$/,
loader: 'file?name=/images/[name].[ext]'
}]
},
plugins: [
extractSass,
new webpack.optimize.CommonsChunkPlugin('libraries-core', 'libraries-core.js'),
new webpack.optimize.CommonsChunkPlugin('libraries-react', 'libraries-react.js')
],
entry: {
//3rd party libraries
'libraries-core': [
'lodash',
'superagent',
'bluebird',
'eventemitter3',
'object-assign',
'schema-inspector',
'jsuri',
'store-cacheable',
'immutable'
],
'libraries-react': [
'react',
'react-dom',
'react-router',
'nucleus-react'
],
//application code
application: './web/app/application.jsx',
//mocks
'mocked-api': './web/app/mock/api.js',
'mocked-local-storage': './web/app/mock/local-storage.js'
},
output: {
path: './web/build',
publicPath: '/build',
filename: '[name].js'
}
}
遵循,您需要颠倒插件定义中关于入口点定义的区块名称顺序
这似乎是一个错误,这个网页插件的时间
new webpack.optimize.CommonsChunkPlugin('libraries-react', 'libraries-react.js')
new webpack.optimize.CommonsChunkPlugin('libraries-core', 'libraries-core.js')
或
在我的例子中,从CommonChunkPlugin的两个条目切换到单个条目很有帮助 之前:
plugins: [
new webpack.optimize.CommonsChunkPlugin('libraries-core', 'libraries-core.js'),
new webpack.optimize.CommonsChunkPlugin('libraries-react', 'libraries-react.js')
]
之后:
plugins: [
new webpack.optimize.CommonsChunkPlugin({
names: ['libraries-core', 'libraries-react'],
minChunks: Infinity
})
]
这是基于这个例子。其他答案讨论了CommonChunkPlugin中名称的顺序,这是正确的。但有时,即使您更正了顺序(即与条目中给出的顺序相反),webpack仍可能抛出相同的错误 这是当您使用另一个CommonChunkPlugin实例来提取commons时-例如,显式webpack运行时块,顺序同样重要-这里是配置插件列表中实例的顺序。简单地说,将此实例移动到CommonChunkPlugin之后,以获得显式的供应商区块。比如说,
plugins: [
// explicit-vendor-chunk
new CommonsChunkPlugin({
names: ["vendor-2", "vendor-1"],
minChunks: Infinity
}),
// and the following should go after explicit-vendor-chunk
// in the list of plugins
// explicit-webpack-runtime-chunk
new CommonsChunkPlugin({
name: "manifest", // something that's not an entry
minChunks: Infinity
})
]
不适用于我:(它只是抛出了相同的错误,但是括号中的另一个块名我遇到了这个问题,我从一个插件实例(名称数组)开始)现在我只想定制一个提取的区块——但尝试将其分成两个插件实例,并得到OP的错误。我实验得到的是,无论指定了多少
名称,您的第一个插件实例都不需要指定区块
或设置子项:true
,但是后续实例必须指定其中一个或另一个(除非它是运行时/清单实例,即名称不是条目的名称)。伙计,这个插件很复杂。如果你在2017年遇到这个问题,你需要阅读插件的工作原理。
plugins: [
// explicit-vendor-chunk
new CommonsChunkPlugin({
names: ["vendor-2", "vendor-1"],
minChunks: Infinity
}),
// and the following should go after explicit-vendor-chunk
// in the list of plugins
// explicit-webpack-runtime-chunk
new CommonsChunkPlugin({
name: "manifest", // something that's not an entry
minChunks: Infinity
})
]