Javascript 网页包2-抑制区块文件
当我们将此输出放在负载平衡器上(不使用sticky)时,我们需要将这些文件的输出放在没有块(既不是散列)的位置 这是网页包配置的两个主要文件 webpack.common.jsJavascript 网页包2-抑制区块文件,javascript,webpack,webpack-2,html-webpack-plugin,commonschunkplugin,Javascript,Webpack,Webpack 2,Html Webpack Plugin,Commonschunkplugin,当我们将此输出放在负载平衡器上(不使用sticky)时,我们需要将这些文件的输出放在没有块(既不是散列)的位置 这是网页包配置的两个主要文件 webpack.common.js const path = require('path'); const webpack = require('webpack'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const ExtractTextPlugin = require('ex
const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const helpers = require('./helpers');
const STATIC_TRANSLATION_MAP = require('../TranslationMap.json');
module.exports = {
entry: {
app: ['./src/public/main.ts'],
vendor: './src/public/vendor.ts',
polyfills: './src/public/polyfills.ts'
},
output: {
path: helpers.root('dist/public')
},
module: {
rules: [
{
test: /\.ts$/,
loaders: ['awesome-typescript-loader', 'angular2-template-loader', 'angular2-router-loader']
},
{
test: /\.html$/,
loader: 'html-loader?-minimize'
},
{
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/,
loader: 'file-loader?name=assets/[name].[ext]'
},
{
test: /\.styl$/,
include: helpers.root('src', 'public', 'app'),
use: [
'raw-loader',
'stylus-loader'
]
},
{
test: /\.styl$/,
include: helpers.root('src', 'public'),
exclude: helpers.root('src', 'public', 'app'),
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
'css-loader',
'stylus-loader'
]
})
},
{
test: /\.css$/,
include: helpers.root('src', 'public', 'assets', 'css'),
loader: 'raw-loader'
},
{
test: /\.xlf$/,
loader: 'raw-loader'
}
]
},
resolve: {
extensions: ['.webpack.js', '.web.js', '.ts', '.js'],
alias: {}
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: ['app', 'vendor', 'polyfills']
}),
new HtmlWebpackPlugin({
template: 'src/public/index.html'
}),
new webpack.DefinePlugin({
'process.env': {
'LOCALE_LIST': JSON.stringify(Object.keys(STATIC_TRANSLATION_MAP))
}
})
]
};
webpack.prod.js
const webpack = require('webpack');
const webpackMerge = require('webpack-merge');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const commonConfig = require('./webpack.common.js');
const helpers = require('./helpers');
const prodEnv = 'production';
module.exports = webpackMerge(commonConfig, {
devtool: 'source-map',
output: {
filename: '[name].js',
chunkFilename: '[name].js'
},
plugins: [
new webpack.NoEmitOnErrorsPlugin(),
new webpack.optimize.UglifyJsPlugin({
mangle: {
keep_fnames: true
}
}),
new webpack.LoaderOptionsPlugin({
htmlLoader: {
minimize: false
}
}),
new ExtractTextPlugin('[name].css'),
new webpack.DefinePlugin({
'process.env': {
'ENV': JSON.stringify(prodEnv)
}
})
]
});
但令我惊讶的是,我注意到webpack正在生成额外的文件。你能看到那些有数字的吗?(从0到19)。我不确定它们来自哪里,它们的每一个内容都以webpackJsonp
开头
有没有一种方法可以禁用此区块功能,只从条目
生成三个文件
发生了什么事?
但令我惊讶的是,我注意到webpack正在生成额外的文件。你能看到那些有数字的吗?(从0到19)
此选项确定非条目
区块文件的名称。
默认情况下,将使用[id].js或从output.filename推断出的值(名称替换为id):
非条目块(外部)
webpack.config.Entry
./dist/app.js
./dist/vendor.js
...
如何修复它?
当前CommonChunkPlugin只接收从条目块导入的模块
解决方法/黑客
此概念可用于获取隐式通用供应商区块:
new webpack.optimize.CommonsChunkPlugin({
name: "vendor",
minChunks: function (module) {
// this assumes your vendor imports exist in the node_modules directory
return module.context && module.context.indexOf("node_modules") !== -1;
}
})
尝试禁用/删除此新网页包。优化.commonChunkPlugin
并检查是否仍然获得0-9文件您的网页包版本是什么?它是webpack 2.0这真的很奇怪,您应该打开一个问题:
new webpack.optimize.CommonsChunkPlugin({
name: "vendor",
minChunks: function (module) {
// this assumes your vendor imports exist in the node_modules directory
return module.context && module.context.indexOf("node_modules") !== -1;
}
})