我正在尝试使用带有HtmlWebpackPlugin
插件的Webpack来缩小我的html文件。我设法将index.html
文件放入我的dist
加载程序中,但是在缩小文件时遇到了一些麻烦。
dist/
node_modules/
src/
ejs/
js/
css/
server.js
webpack.config.js
package.js
webpack.config.js:
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
entry: './src/js/index.js',
devtool: 'source-map',
output: {
publicPath: '/dist/'
},
module: {
rules: [
{
test: /\.ejs$/,
use: ['ejs-loader']
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
use: [{
loader: 'css-loader',
options: {
url: false,
minimize: true,
sourceMap: true
}
}]
})
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: './src/ejs/index.ejs',
minify: true
}),
new ExtractTextPlugin({
filename: 'main_style.css'
})
]
}
答案 0 :(得分:2)
不确定确切要面对的问题是什么,但是您可以尝试在minify属性(而不是布尔值)中传递显式参数。 例如,要删除空格,请尝试以下操作:
尝试:
new HtmlWebpackPlugin({
template: './src/ejs/index.ejs',
filename: 'index.ejs',
minify: {
collapseWhitespace: true
}
})
这对我有用。
有关选项的完整列表,请检查documentation。
答案 1 :(得分:0)
我遇到了同样的问题,minify: true
选项不起作用。
根据文档,它应该可以工作。这时,我添加了默认选项以产生相同的结果。
如果将minify选项设置为true(当webpack的模式为“生产”时为默认值),则将使用html-minifier-terser和以下选项来缩小生成的HTML:
{
collapseWhitespace: true,
removeComments: true,
removeRedundantAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
useShortDoctype: true
}
答案 2 :(得分:0)
此配置适用于我的项目:
new HtmlWebpackPlugin({
inject: "body",
hash: true,
template: './src/ejs/index.ejs',
filename: 'index.ejs',
minify: {
html5 : true,
collapseWhitespace : true,
minifyCSS : true,
minifyJS : true,
minifyURLs : false,
removeAttributeQuotes : true,
removeComments : true, // false for Vue SSR to find app placeholder
removeEmptyAttributes : true,
removeOptionalTags : true,
removeRedundantAttributes : true,
removeScriptTypeAttributes : true,
removeStyleLinkTypeAttributese : true,
useShortDoctype : true
},
}),