how to extract vue files style into one seperate style.css file

Asked By: Anonymous

I’m using vue-loader and by default for each vue files you have one style tag in your view which is not a good thing,
according to vue-loader documentation i can do this

https://vue-loader.vuejs.org/en/configurations/extract-css.html
my webpack-config.js file

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

module.exports = {
  entry: './src/main.js',
  output: {
    path: path.resolve(__dirname, './dist'),
    publicPath: '/dist/',
    filename: 'build.js'
  },
  module: {
    rules: [
      {
        // this one extracts css files that imported to styles.css
        test: /.css$/,
        use: ExtractTextPlugin.extract({
          fallback: 'style-loader' ,
          use: "css-loader"
        })
      },
      {
         // and this dude here extracts component's styles into styles.css
        test: /.vue$/,
        loader: 'vue-loader',
        options: {
          loaders: {
                  css: ExtractTextPlugin.extract({
          use: 'css-loader',
          fallback: 'vue-style-loader' 
        })
          }
        }
      },
      {
        test: /.js$/,
        loader: 'babel-loader',
        exclude: /node_modules/
      },
      {
        test: /.(png|jpg|gif|svg)$/,
        loader: 'file-loader',
        options: {
          name: '[name].[ext]?[hash]'
        }
      },
      {
       test: /.(woff|woff2|eot|ttf|svg)(?.*$|$)/,
       loader: 'url-loader?importLoaders=1&limit=100000'
     }
    ]
  },

      plugins: [
    new ExtractTextPlugin("styles.css"),
  ],
  resolve: {
    alias: {
      'vue$': 'vue/dist/vue.esm.js'
    }
  },
  devServer: {
    historyApiFallback: true,
    noInfo: true
  },
  performance: {
    hints: false
  },
  devtool: '#eval-source-map'
}

if (process.env.NODE_ENV === 'production') {
  module.exports.devtool = '#source-map'
  // http://vue-loader.vuejs.org/en/workflow/production.html
  module.exports.plugins = (module.exports.plugins || []).concat([
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: '"production"'
      }
    }),
    new webpack.optimize.UglifyJsPlugin({
      sourceMap: true,
      compress: {
        warnings: false
      }
    }),
    new webpack.LoaderOptionsPlugin({
      minimize: true
    })
  ])
}

but this code is not working at all and behavior is the same .


Solution

Answered By: Anonymous

here is one issue simillar to your problem, check it out

Url(https://stackoverflow.com/a/40199096/6381510)

but this better

 less: ExtractTextPlugin.extract({
              loader: 'css-loader!less-loader?indentedSyntax',
              fallbackLoader: 'vue-style-loader',
            }),

Windows 10 Kaufen Windows 10 Pro Office 2019 Kaufen Office 365 Lizenz Windows 10 Home Lizenz Office 2019 Home Business Kaufen Windows 10 Lisans Office 2019 Mac Satın Al follower kaufen instagram follower kaufen porno