【发布时间】:2021-03-24 00:02:16
【问题描述】:
我有一个 Webpack 设置来构建不同的包,并将包使用的所有 CSS 放在一个 CSS 文件中。
问题在于 Webpack 将所有捆绑包的所有 CSS 放在一起。
小米项目配置如下。
webpack.config.js
module.exports = {
entry: {
'bundle-a': './src/bundle-a.ts',
'bundle-b': './src/bundle-b.ts'
},
...
plugins: [
new MiniCssExtractPlugin(),
],
module: {
rules: [
{
test: /\.ts(x?)$/,
include: path.resolve(__dirname, 'src'),
use: ['ts-loader']
},
{
test: /\.css$/,
include: path.resolve(__dirname, 'src'),
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
modules: 'local'
}
}
]
}
]
}
};
src/bundle-a.ts
import style from './bundle-a.css';
...
src/bundle-a.css
.class-bundle-a {
...
}
src/bundle-b.js
import style from './bundle-b.css';
...
src/bundle-b.css
.class-bundle-b {
...
}
当我构建项目时,我得到以下 CSS 文件。
dist/bundle-a.css
.class-bundle-a {
...
}
.class-bundle-b {
...
}
dist/bundle-b.css
.class-bundle-a {
...
}
.class-bundle-b {
...
}
我希望 dist/bundle-a.css 仅在 src/bundle-a.ts 中导入 CSS,但我也得到了 src/bundle-b.ts 导入的 CSS,并且与 src/bundle-b.css 相同。如果我使用 style-loader,也会发生同样的情况。
我想知道这是预期的行为还是我的代码中有一些错误。
【问题讨论】:
-
你的 webpack 版本是多少?尝试用
extract-text-webpack-plugin提取css -
我的 webpack 版本是
5.10.1。 -
你能通过 git 分享项目(所有设置)吗?
标签: css webpack css-loader webpack-style-loader mini-css-extract-plugin