在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ webpack使用extractTextPlugin分離css文件時,會將樣式直

webpack使用extractTextPlugin分離css文件時,會將樣式直接插入到html的header里,怎么解決?

問題:在使用 webpack 的插件 extract-text-webpack-plugin 做多入口 css 樣式分離時,只生成了一個 css 文件(main.css),其余入口的樣式被插入到了 html 的 header 里面,現(xiàn)在想把插入到 header 中樣式提取出來寫進 vender.css 中應(yīng)該怎么處理??

我的webpack.config.js配置如下:

const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

config = {
    entry: {
        vendor: ['jquery', 'lodash', 'angular', 'angular-ui-router','angular-ui-bootstrap', 'bootstrap'], //公共模塊的集合
        main: __dirname + "/app/index.js", //已多次提及的唯一入口文件
    },
    output: {
        path: __dirname + "/build",  // 打包后的文件存放路徑
        filename: "[name]-bundle-[hash].js", // 打包后的js文件放到build目錄下,需要通過占位符才能打包為多個js文件,否則會依次覆蓋文件
    },
    module: {
        rules: [
            {
                test: /(\.js)$/,
                use: {
                    loader: "babel-loader"
                },
                exclude: /node_modules/
            },
            {
                test: /\.css$/,
                use: ExtractTextPlugin.extract({
                    fallback: "style-loader",  // 規(guī)則提取器
                    use: [{
                        loader: "css-loader",
                        options: {
                            minimize: false,  // 是否壓縮
                            modules: true,  // 是否啟用 css modules 規(guī)范
                            localIdentName: '[name]__[local]--[hash:base64:5]'
                        }
                    },{
                        loader: "postcss-loader"
                    }]
                }),
                exclude: /node_modules/
            }
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            favicon: __dirname + "/app/favicon.ico",
            filename: __dirname + '/build/index.html', //打包后的 html 文件名及路徑
            template: __dirname + "/app/index.html", // html模板路徑
            inject: 'body', // 指定打包好的<script>標(biāo)簽插入的位置
            hash: true, //為靜態(tài)資源生成hash值
            chunks: ['main', 'common'] // 給頁面指定要打包的js模塊, common 來自 CommonsChunkPlugin 插件提取的公共代碼
        }),
        // 如果入口有多個節(jié)點,可以有選擇的提取公共代碼,生成一個common.js
        new webpack.optimize.CommonsChunkPlugin({
            name:'common', // 注意不要.js后綴
            chunks: ['main', 'vendor']
        }),
        new ExtractTextPlugin("[name]-bundle-[hash].css")
    ],
    devtool: 'eval'
};
module.exports = config;

運行webpack后生成的文件如下圖:
圖片描述

可以看到期望生成的 js 文件都正常,但是期望生成的 vender-bundle-[hash].css 文件卻沒有生成,只生成了 main-bundle-[hash].css 。而在瀏覽器中查看頁面,發(fā)現(xiàn) html 的 header 中插入了 style 標(biāo)簽,分析看應(yīng)該是入口 entry 中 vendor 中引入的模塊產(chǎn)生的樣式,如下圖所示:
圖片描述

怎樣才能將插入到頁面樣式提取出來呢??大神們幫忙解答一下啊,不勝感激~

回答
編輯回答
乞許

webpack4+的extractTextPlugin已經(jīng)被廢棄了。代替方案為mini-css-extract-plugin

2018年5月5日 00:05