简体   繁体   English

如何从 webpack 入口点排除文件

[英]How to exclude files from a webpack entry point

I am using the following webpack config to handle / load all of my sass files.我正在使用以下 webpack 配置来处理/加载我的所有 sass 文件。 One important item is that I am using additionalData to preappend my common styles.一个重要的项目是我正在使用additionalData数据来预先附加我的常见 styles。 This is causing a conflict, however, because my entry for webpack is any and all sass files, which means that my commonStyles.scss is already getting loaded.但是,这会导致冲突,因为我的 webpack 条目是所有 sass 文件,这意味着我的commonStyles.scss已经加载。 When I run my app, I get the following error:当我运行我的应用程序时,我收到以下错误:

errorMessage:错误信息:

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

How can I create an entry point that includes all sass files in my app except for / excluding commonStyles.scss (or better yet, any files in the /src/styles/ folder)?如何在我的应用程序中创建一个包含所有sass 文件的入口点,除了/不包括commonStyles.scss (或者更好的是, /src/styles/文件夹中的任何文件)? Thanks for the help!谢谢您的帮助!

webpack config: 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";`,
            },
          },
        ],
      },
    ],
  },
};

Instead of /**/*.{css,scss} try /**/.{commonStyles},{css,scss}而不是/**/*.{css,scss}尝试/**/.{commonStyles},{css,scss}

Alternatively:或者:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM