Проблема
Я использую Webpack, Html -loaded и E JS в проекте для рендеринга некоторых HTML. HTML действительно содержит некоторые встроенные CSS:
#clawgame-sidebar img {
max-height: 196px;
}
#clawgame-sidebar.clawgame-sidebar-active {
<%= (o.sidebarPosition==ET_SidebarPosition.Left? "left: 0px;": "right: 0px;")) %>
max-width: 100%;
}
Каждый раз, когда я запускаю Webpack в производственном режиме / Html -загрузчик с минимизированной опцией, второе CSS -запись удаляется. Кажется, что минимизация убивает этот оператор, хотя я использую много похожих и сложных операторов E JS, таких как ..
#clawgame-sidebar {
height: 100%;
/* 100% Full-height */
width: <%=SidebarParameters.width %>px;
max-width: 100%;
/* 0 width - change this with JavaScript */
position: fixed;
/* Stay in place */
z-index: <%=Parameters.zIndexModal %>;
/* Stay on top */
top: 0;
/* Stay at the top */
<%=o.sidebarPosition==ET_SidebarPosition.Left? "left: -"+ SidebarParameters.width + "px;": "right: -"+ SidebarParameters.width +"px;"%>
background-color: <%=o.bgcolor %> !important;
color: <%=o.getTextColorNormal(); %> !important;
padding: 0px;
transition: 0.5s;
}
Почему Html -loader удаляет мой простой CSS / E JS во время минификации?
Приложение
webpack.base.config. js
var glob = require("glob");
module.exports = {
entry: ['./src/_AppRun.ts'].concat(glob.sync("./src/avatars/*.ts")),
module: {
rules: [
{
test: /\.css$/, // Only .css files
use: [{ loader: 'style-loader' }, { loader: 'css-loader' }], // Run both loaders
},
{
test: /\.html$/i,
// loader: 'html-loader',
loader: "html-loader", /* */
// options: {
// minimize: false
// }
},
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
}
]
},
resolve: {
extensions: [".tsx", ".ts", ".js"]
},
/* bugfix to make ejs work
https://github.com/webpack-contrib/css-loader/issues/447 */
node: {
fs: "empty"
}
};
webpack.prod.config. js
const path = require('path');
const merge = require('webpack-merge');
const common = require('./webpack.base.config.js');
const webpack = require('webpack');
module.exports = merge(common, {
mode: 'production',
output: {
filename: 'bundle.min.js',
path: path.resolve(__dirname, 'dist')
},
plugins: [
new webpack.DefinePlugin({
__ASSET_PATH___: JSON.stringify("https://s3.THIS_IS_NOT_FOR_YOUR_EYES/")
})
]
});
webpack.dev.config. js
const path = require('path');
const merge = require('webpack-merge');
const common = require('./webpack.base.config.js');
const webpack = require('webpack');
module.exports = merge(common, {
mode: 'development',
devtool: 'inline-source-map',
watch: true,
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
plugins: [
new webpack.DefinePlugin({
__ASSET_PATH___: JSON.stringify("/apps/_THIS_IS_NOT_FOR_YOUR_EYES_/")
})
]
});