【发布时间】:2018-10-26 19:22:43
【问题描述】:
我在 php 应用程序中使用 Webpack 4 和 mini-css-extract-plugin。我将我编写的所有css 样式保留在scss 文件中,但是在某些情况下,当我导入一个外部库时,我会在我使用它的脚本中导入它的css。我的最终目标是将所有 css 样式放在一个 css 文件中,我可以手动将其包含在 php 视图中,但目前我将 scss 放在一个文件中,并将 css 从另一个文件中获取。
我当前的 webpack 配置是这样的:
module.exports = {
devtool: 'source-map',
entry: {
style: './resources/assets/sass/style.scss',
...
},
optimization: {
splitChunks: {
cacheGroups: {
default: false,
styles: {
name: 'styles',
test: /\.s?css$/,
minChunks: 1,
reuseExistingChunk: true,
enforce: true,
},
commons: {
test: /[\\/]node_modules[\\/]/,
name: 'vendors',
chunks: 'all',
//minChunks: 2,
},
},
},
},
module: {
rules: [
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
],
},
{
test: /\.scss$/,
use: [
'style-loader',
MiniCssExtractPlugin.loader,
'css-loader',
{
loader: 'postcss-loader',
options: { config: { path: 'postcss.config.js' } },
},
'sass-loader',
],
},
plugins: [
new MiniCssExtractPlugin({
filename: '[name].[chunkhash].css',
}),
new webpack.ProvidePlugin({
noUiSlider: 'nouislider',
}),
]
scss 样式可以正常工作,但是在一个脚本中我有这个:
import 'nouislider/distribute/nouislider.css';
来自ProvidePlugin 中包含的脚本,这个css 最终出现在vendors.css 文件中,而我希望它与其余部分一起出现在style.css 中。
我做错了什么?
编辑: 按照建议,我创建了一个 github 存储库来重新创建问题:
【问题讨论】:
-
创建一个最小的 git repo 来重现你的问题,所以我们可以看看......
-
@Legends 我编辑了我的问题,添加了一个指向最小 github 存储库的链接。我包含了整个
node_modules目录,所以只需运行npm run build就足够了 -
您找到解决方案了吗?我有同样的问题。
标签: css webpack webpack-style-loader webpack-4 mini-css-extract-plugin