webpack使用extract-text-webpack-plugin将css提取到单独的文件中

时间:2017-07-15 00:01:14

标签: webpack extract-text-plugin

我正在尝试使用webpack将所有.css提取到单独的文件中。为此,我使用xtract-text-webpack-plugin

出于某种原因,我在运行网络包后没有收到任何文件。

这是我的webpack.config文件

var path = require('path');
var webpack = require('webpack');

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

const css = new ExtractTextPlugin('styles/[name].css');

module.exports = {
    entry: [
        './App/main.js'
    ],
    output: {
        path: path.join(__dirname, '/wwwroot/js/'),
        filename: '[name].js',
    },
    resolve: {
        extensions: ['.css']
    },
    module: {
        rules: [{
            test: /\.css$/,
            use: ExtractTextPlugin.extract({
                use: 'css-loader'
            })
        }]
    },
    plugins: [
        css
    ],

}

这是我在控制台中获得的输出

Hash: 81acf65502ca13764b09
Version: webpack 3.2.0
Time: 71ms
  Asset     Size  Chunks             Chunk Names
main.js  2.62 kB       0  [emitted]  main
   [0] multi ./App/main.js 28 bytes {0} [built]
   [1] ./App/main.js 27 bytes {0} [built]
我的wwwroot文件夹中没有.css个文件。 知道为什么会这样吗?

这里是package.json文件

"dependencies": {},
  "devDependencies": {
    "css-loader": "^0.28.4",
    "extract-text-webpack-plugin": "^3.0.0",
    "webpack": "^3.2.0"
  }

谢谢!

2 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点。这是我一直在做的方式......

module: {
            rules: [
                {
                    test: /\.css$/, use: ExtractTextPlugin.extract(
                        { use: isDevBuild ? 'css-loader' : 'css-loader?minimize' }
                    )
                }
        },
        output: { path: path.join(__dirname, clientBundleOutputDir) },
        plugins: [
            new ExtractTextPlugin('site.css')

使用此配置的所有CSS都会被解压缩到一个site.css文件中。

答案 1 :(得分:0)

我能够弄清楚这一点。

我的webpack配置是正确的。

有两种方法可以做到这一点

您需要.scss的第一种方式,它将为css文件提供一个入口点。

您可以在webpack中创建第二个入口点的第二种方式

 entry: {
        index: "./scripts/index.js",
        vendor: "./styles/yourcss.css"
    }