gpt4 book ai didi

javascript - 你如何使用 webpack 从子模块中提取 css 导入?

转载 作者:行者123 更新时间:2023-11-28 16:36:50 25 4
gpt4 key购买 nike

我正在尝试使用 webpackextract-text-webpack-plugin 创建一个包含多个条目的 React 应用程序。

我的配置文件是这样的

const commonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin');
const extractTextPlugin = require('extract-text-webpack-plugin');

let config = {
entry: {
app: './client/app.entry.js',
signIn: './client/sign-in.entry.js',
},
output: {
path: './server/public',
filename: '[name].js'
},

module: {
loaders: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['react', 'es2015']
}
},
{
test: /\.css$/,
loader: extractTextPlugin.extract('style-loader', 'css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]')
}
]
},

resolve: {
modulesDirectories: ['node_modules', 'client'],
extensions: ['', '.js']
},

plugins: [
new commonsChunkPlugin('common', 'common.js'),
new extractTextPlugin('styles.css', { allChunks: true })
]
};

module.exports = config;

我的问题是 extract-text-webpack-plugin 只包括从入口 block 导入的 css 文件,而不包括从入口 block 的子模块导入的 css 文件。

所以如果 app.entry.js

import "./app-style.css";
import "./sub-module"; // This module has import "./sub-style.css";

然后 app-style.css 中的样式会被捆绑,但 sub-style.css 中的样式不会被捆绑。

我以前只有一个条目文件时没有遇到过这个问题,所以我想知道是否有多个条目需要另一种设置?

还需要考虑的是通过使用 css-loader 的方式使用 CSSModules,这也可能是一个因素。

有什么想法吗?

最佳答案

我正在尝试解决类似的问题,我认为为那些有相同问题的人记录解决方案和想法是个不错的主意。

TextExtract 插件可以处理必须使用 commonchunks 插件配置的 block ,启用 block 支持:

// Configuration of the extract plugin with chunks and naming
new ExtractTextPlugin("[name].css", { allChunks: true })

就这些)接下来就是配置 block (webpack是非常灵活的工具,每个人都可以根据自己的需要配置它。例如,我将展示如何配置“vendour.css”和“application.css”build基于“导入”的配置)

// Vendour chunks definition for vendor css
entry: {
vendor : ['./css/vendour.sass']

入口点 file.js 示例

import "./css/vendor.sass"
import "./css/application.sass"

构建后,webpack 将创建 vendor.css(您可以在其中使用 @import "~vendormodules/sass/alla" 导出 vendor 的东西)和 application.css 文件。

谢谢,

关于javascript - 你如何使用 webpack 从子模块中提取 css 导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34383117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com