[英]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.