【问题标题】:How to exclude files from a webpack entry point如何从 webpack 入口点排除文件
【发布时间】:2021-06-04 14:53:42
【问题描述】:

我正在使用以下 webpack 配置来处理/加载我所有的 sass 文件。一个重要的项目是我使用additionalData 预先附加我的常用样式。但是,这会导致冲突,因为我的 webpack 条目是任何和所有 sass 文件,这意味着我的 commonStyles.scss 已经被加载。当我运行我的应用程序时,我收到以下错误:

错误消息:

SassError: This file is already being loaded.
  ╷
1 │ @import "src/styles/commonStyles.scss";
  │         ^^^^^^^^^^^^^^^^^^^^^^^
  ╵
  src/styles/sizes.scss 1:9  root stylesheet

如何在我的应用程序中创建一个包含 所有 sass 文件的入口点除了/排除 commonStyles.scss(或者更好的是,@987654326 中的任何文件@ 文件夹)?感谢您的帮助!

webpack 配置:

'use strict';

const fs = require('fs');
const glob = require('glob');
const path = require('path');

const sassRegex = /\.(scss|sass)$/;

module.exports = {
  mode: 'production',
  bail: true,
  devtool: false,
  entry: glob.sync(`${path.resolve(fs.realpathSync(process.cwd()), 'src')}/**/*.{css,scss}`),
  output: {
    path: 'build',
  },
  module: {
    rules: [
      {
        test: sassRegex,
        exclude: /node_modules/,
        use: [
          {
            loader: 'sass-loader',
            options: {
              sourceMap: true,
              additionalData: `@import "src/styles/commonStyles.scss";`,
            },
          },
        ],
      },
    ],
  },
};

【问题讨论】:

标签: javascript css webpack sass


【解决方案1】:

而不是 /**/*.{css,scss}试试/**/!{commonStyles}.{css,scss}

或者:

entry: glob.sync(
  `${path.resolve(fs.realpathSync(process.cwd()), 'src')}/**/*.{css,scss}`,
  ignore: [
    '**/src/styles/commonStyles.scss',
  ],
),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多