首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用vue-cli脚手架搭建的项目,我该怎么修改打包配置?

使用vue-cli脚手架搭建的项目,我该怎么修改打包配置?

提问于 2017-11-27 11:09:14
回答 2关注 0查看 2.1K

1.项目引入了 element-ui,我在vue组件中写了一些样式来覆盖element的样式。但是run build 打包后,css文件中element相关的样式都在我写的样式之后,导致覆盖失败了。run dev开发环境没这样的问题

2.附上打包配置,都是vue脚手架自动生成的,也没有改动过。求指教可能是什么原因引起的?对webpack用的还不够熟练。。

代码语言:txt
复制
代码语言:txt
复制
var path = require('path')
代码语言:txt
复制
var utils = require('./utils')
代码语言:txt
复制
var webpack = require('webpack')
代码语言:txt
复制
var config = require('../config')
代码语言:txt
复制
var merge = require('webpack-merge')
代码语言:txt
复制
var baseWebpackConfig = require('./webpack.base.conf')
代码语言:txt
复制
var CopyWebpackPlugin = require('copy-webpack-plugin')
代码语言:txt
复制
var HtmlWebpackPlugin = require('html-webpack-plugin')
代码语言:txt
复制
var ExtractTextPlugin = require('extract-text-webpack-plugin')
代码语言:txt
复制
var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
代码语言:txt
复制
代码语言:txt
复制
var env = process.env.NODE_ENV === 'testing'
代码语言:txt
复制
  ? require('../config/test.env')
代码语言:txt
复制
  : config.build.env
代码语言:txt
复制
代码语言:txt
复制
var webpackConfig = merge(baseWebpackConfig, {
代码语言:txt
复制
  module: {
代码语言:txt
复制
    rules: utils.styleLoaders({
代码语言:txt
复制
      sourceMap: config.build.productionSourceMap,
代码语言:txt
复制
      extract: true
代码语言:txt
复制
    })
代码语言:txt
复制
  },
代码语言:txt
复制
  devtool: config.build.productionSourceMap ? '#source-map' : false,
代码语言:txt
复制
  output: {
代码语言:txt
复制
    path: config.build.assetsRoot,
代码语言:txt
复制
    filename: utils.assetsPath('js/[name].[chunkhash].js'),
代码语言:txt
复制
    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
代码语言:txt
复制
  },
代码语言:txt
复制
  plugins: [
代码语言:txt
复制
    // http://vuejs.github.io/vue-loader/en/workflow/production.html
代码语言:txt
复制
    new webpack.DefinePlugin({
代码语言:txt
复制
      'process.env': env
代码语言:txt
复制
    }),
代码语言:txt
复制
    new webpack.optimize.UglifyJsPlugin({
代码语言:txt
复制
      compress: {
代码语言:txt
复制
        warnings: false
代码语言:txt
复制
      },
代码语言:txt
复制
      sourceMap: true
代码语言:txt
复制
    }),
代码语言:txt
复制
    // extract css into its own file
代码语言:txt
复制
    new ExtractTextPlugin({
代码语言:txt
复制
      filename: utils.assetsPath('css/[name].[contenthash].css')
代码语言:txt
复制
    }),
代码语言:txt
复制
    // Compress extracted CSS. We are using this plugin so that possible
代码语言:txt
复制
    // duplicated CSS from different components can be deduped.
代码语言:txt
复制
    new OptimizeCSSPlugin({
代码语言:txt
复制
      cssProcessorOptions: {
代码语言:txt
复制
        safe: true
代码语言:txt
复制
      }
代码语言:txt
复制
    }),
代码语言:txt
复制
    // generate dist index.html with correct asset hash for caching.
代码语言:txt
复制
    // you can customize output by editing /index.html
代码语言:txt
复制
    // see https://github.com/ampedandwired/html-webpack-plugin
代码语言:txt
复制
    new HtmlWebpackPlugin({
代码语言:txt
复制
      filename: process.env.NODE_ENV === 'testing'
代码语言:txt
复制
        ? 'index.html'
代码语言:txt
复制
        : config.build.index,
代码语言:txt
复制
      template: 'index.html',
代码语言:txt
复制
      inject: true,
代码语言:txt
复制
      minify: {
代码语言:txt
复制
        removeComments: true,
代码语言:txt
复制
        collapseWhitespace: true,
代码语言:txt
复制
        removeAttributeQuotes: true
代码语言:txt
复制
        // more options:
代码语言:txt
复制
        // https://github.com/kangax/html-minifier#options-quick-reference
代码语言:txt
复制
      },
代码语言:txt
复制
      // necessary to consistently work with multiple chunks via CommonsChunkPlugin
代码语言:txt
复制
      chunksSortMode: 'dependency'
代码语言:txt
复制
    }),
代码语言:txt
复制
    // split vendor js into its own file
代码语言:txt
复制
    new webpack.optimize.CommonsChunkPlugin({
代码语言:txt
复制
      name: 'vendor',
代码语言:txt
复制
      minChunks: function (module, count) {
代码语言:txt
复制
        // any required modules inside node_modules are extracted to vendo
代码语言:txt
复制
        return (
代码语言:txt
复制
          module.resource &&
代码语言:txt
复制
          /\.js$/.test(module.resource) &&
代码语言:txt
复制
          module.resource.indexOf(
代码语言:txt
复制
            path.join(__dirname, '../node_modules')
代码语言:txt
复制
          ) === 0
代码语言:txt
复制
        )
代码语言:txt
复制
      }
代码语言:txt
复制
    }),
代码语言:txt
复制
    // extract webpack runtime and module manifest to its own file in order to
代码语言:txt
复制
    // prevent vendor hash from being updated whenever app bundle is updated
代码语言:txt
复制
    new webpack.optimize.CommonsChunkPlugin({
代码语言:txt
复制
      name: 'manifest',
代码语言:txt
复制
      chunks: ['vendor']
代码语言:txt
复制
    }),
代码语言:txt
复制
    // copy custom static assets
代码语言:txt
复制
    new CopyWebpackPlugin([
代码语言:txt
复制
      {
代码语言:txt
复制
        from: path.resolve(__dirname, '../static'),
代码语言:txt
复制
        to: config.build.assetsSubDirectory,
代码语言:txt
复制
        ignore: ['.*']
代码语言:txt
复制
      }
代码语言:txt
复制
    ])
代码语言:txt
复制
  ]
代码语言:txt
复制
})
代码语言:txt
复制
代码语言:txt
复制
if (config.build.productionGzip) {
代码语言:txt
复制
  var CompressionWebpackPlugin = require('compression-webpack-plugin')
代码语言:txt
复制
代码语言:txt
复制
  webpackConfig.plugins.push(
代码语言:txt
复制
    new CompressionWebpackPlugin({
代码语言:txt
复制
      asset: '[path].gz[query]',
代码语言:txt
复制
      algorithm: 'gzip',
代码语言:txt
复制
      test: new RegExp(
代码语言:txt
复制
        '\\.(' +
代码语言:txt
复制
        config.build.productionGzipExtensions.join('|') +
代码语言:txt
复制
        ')$'
代码语言:txt
复制
      ),
代码语言:txt
复制
      threshold: 10240,
代码语言:txt
复制
      minRatio: 0.8
代码语言:txt
复制
    })
代码语言:txt
复制
  )
代码语言:txt
复制
}
代码语言:txt
复制
代码语言:txt
复制
if (config.build.bundleAnalyzerReport) {
代码语言:txt
复制
  var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
代码语言:txt
复制
  webpackConfig.plugins.push(new BundleAnalyzerPlugin())
代码语言:txt
复制
}
代码语言:txt
复制
代码语言:txt
复制
module.exports = webpackConfig

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档