У меня есть статическая страница, которой не нужен JavaScript. Я использую vue-cli 3 и хотел бы передать файл HTML через веб-пакет для минимизации. Однако это не представляется возможным. Внутри vue.config.js
у меня есть это:
module.exports = {
pages: {
static_page: {
template: "./public/static_page.html",
entry: ""
}
}
};
Конечно, это не удается, потому что entry
требуется и не может быть пустым. Простое размещение файла в public
приведет к тому, что vue-cli скопирует файл в dist
без изменений. Это нормально, но это не минифицировано. Итак, как мне заставить vue-cli обрабатывать HTML-файл без JavaScript?
Мне пришлось вручную вызывать плагин HTML Webpack. Вот мой vue.config.js
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
configureWebpack: {
plugins: [
new HtmlWebpackPlugin({
template: "./public/static_page.html",
filename: "static_page.html",
chunks: [],
minify: {
collapseWhitespace: true,
removeComments: true,
removeRedundantAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
useShortDoctype: true
}
})
]
}
};
Vue CLI по-прежнему копирует файл из public
в dist
без изменений , как и с любым другим статическим ресурсом . Плагин HTML Webpack перезаписывает этот файл уменьшенной версией.
Кроме того, установка параметра minify
на true
, похоже, ничего не делает. Опции должны быть указаны явно. Смотрите Выпуск №1094.
Еще одна полезная ссылка — список опций HTML Webpack Plugin.