Webpack / Html -loader удаляет CSS в режиме минимизации - PullRequest
0 голосов
/ 18 июня 2020

Проблема

Я использую 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_/")
      })
    ]

});
...