【问题标题】:How to exclude certain .CSS file from output in Webpack:?如何从 Webpack 的输出中排除某些 .CSS 文件:?
【发布时间】:2020-02-06 06:47:37
【问题描述】:
foo.js
foo.css
bar.css

foo.js 包括foo.css
foo.css 包括bar.css

因此,我与bar.css 捆绑在一起。我想排除它。我也在使用MiniCssExtractPlugin,因为我需要分离 css 和 js 文件。

我已经尝试过的:

  • IgnorePlugin。它会删除 bar,但随后 MiniCssExtractPlugin 会因此而失败。
  • null-loader for bar.css(我尝试了 test 与正则表达式和包含/排除)。它根本不起作用(可能是我错过了什么。
  • /\.css$/ 的两个 oneOf 规则:用于 null-loader,另一个用于其他所有内容。

没有任何作用。

实现它的正确方法是什么?

我的webpack.config.js

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const webpack = require('webpack');

module.exports = {
  plugins: [
    new MiniCssExtractPlugin({ }),
    new webpack.IgnorePlugin(/bar\.css$/)
  ],
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          {
            loader: MiniCssExtractPlugin.loader,
          },
          'css-loader',
        ],
      },
    ],
  },
};

还有输出

ERROR in ./src/foo.css
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
Error: Cannot find module '-!../node_modules/css-loader/dist/cjs.js!./bar.css'

似乎MiniCssExtractPlugin 明确使用css-loader,所以我不能跳过配置加载模块。

【问题讨论】:

  • 能否请您附上您的webpack.config.js
  • 你可以试试new webpack.IgnorePlugin(/bar\.css$/);
  • @DacreDenny 我添加了它。
  • @DerekLawrence 我试过了,请检查问题的更新版本

标签: javascript html css webpack


【解决方案1】:

解决方法是使用NormalModuleReplacementPlugin将坏文件替换为空文件

const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const webpack = require('webpack');

const pluginToIgnore = /bad_css\.css$/;
module.exports = {
    plugins: [
        new MiniCssExtractPlugin({}),
        new webpack.NormalModuleReplacementPlugin(
            pluginToIgnore,
            '!./empty.css'
        )
    ],
    module: {
        rules: [
            {
                test: /\.css$/,
                use: [MiniCssExtractPlugin.loader, 'css-loader']
            },
        ],
    },
};

【讨论】:

  • 尝试做同样的事情但替换 scss 文件但它不起作用。
猜你喜欢
  • 2019-08-13
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
  • 2018-07-12
  • 2019-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多