Я использую HtmlWebpackPlugin со следующими настройками:
new HtmlWebpackPlugin({
template: 'src/index.ejs',
minify: isDevelopment ? false : {
caseSensitive: false,
removeComments: true,
collapseWhitespace: true,
removeRedundantAttributes: true,
useShortDoctype: false,
removeEmptyAttributes: true,
removeStyleLinkTypeAttributes: true,
removeScriptTypeAttributes: true,
keepClosingSlash: false,
minifyJS: true,
minifyCSS: true,
minifyURLs: true,
sortAttributes: true,
sortClassName: true,
},
}),
, которые, как я считаю, перенаправляются на html -minifier-terser , но это не так сжатие моего <script>
тега.
HTML и CSS сжаты, но не мой JS.
Как включить сжатие сценариев?
На самом деле не совсем так, я не уверен, что он делает. Это:
<script>
// TODO: compress this or move this or something
if('serviceWorker' in navigator) {
window.addEventListener('load', () => {
// https://github.com/GoogleChrome/workbox/issues/1790
navigator.serviceWorker.register('/service-worker.js').then(registration => {
console.info('SW registered: ', registration);
}).catch(registrationError => {
console.error('SW registration failed: ', registrationError);
});
});
}
</script>
"Сжимает" до этого:
<script>// TODO: compress this or move this or something
if('serviceWorker' in navigator) {
window.addEventListener('load', () => {
// https://github.com/GoogleChrome/workbox/issues/1790
navigator.serviceWorker.register('/service-worker.js').then(registration => {
console.info('SW registered: ', registration);
}).catch(registrationError => {
console.error('SW registration failed: ', registrationError);
});
});
}</script>
, т. Е. Он удалил немного пробелов, которые могут даже быть просто из опции collapseWhitespace
. Тем не менее, это:
<script>if('serviceWorker' in navigator)navigator.serviceWorker.register('/service-worker.js')</script>
Сжимает до:
<script>"serviceWorker"in navigator&&navigator.serviceWorker.register("/service-worker.js")</script>
Так что что-то делает, но я не знаю, что. Разве не нравится, когда у меня есть комментарии?