airyland / vux-loader

hack into vue-loader
64 stars 37 forks source link

请问duplicate-style如何区分生产或者开发模式 #33

Closed Jiiiiiin closed 6 years ago

Jiiiiiin commented 7 years ago

最近项目开发到一个阶段之后,感觉打包和热更新明显变慢了,现在的vux-loader是这样配置的:


module.exports = vuxLoader.merge(webpackConfig, {
  plugins: [
    'vux-ui', 'inline-manifest', 'progress-bar', 'duplicate-style',
//     {
//       name: 'js-parser',
//       test: /main\.js/,
//       fn: function (source) {
// //         str = `[${str.join(',\n')}]`
// //         source = source.replace('const routes = []', 'const routes = ' + str)
//
//
//         return source
//       }
//     },
    {
      name: 'i18n',
      vuxStaticReplace: false,
      staticReplace: false,
      extractToFiles: 'src/locales/global_locales.yml',
      localeList: ['en', 'zh-CN']
    },
    {
      name: 'less-theme',
      path: 'src/assets/less/vux-theme.less'
    },
    {
      name: 'build-done-callback',
      fn: function () {
        console.log('======== build success! ========')
      }
    }
  ]
})

自觉告诉我,如果开发的时候不进行【duplicate-style】的优化可能会相对快一些,请@airyland 有空能告诉一下:

module.exports = vuxLoader.merge(webpackConfig, {
  options: {},
  plugins: [{
    name: 'vux-ui'
  }]
})

官方文档所指的【options】中的【env】和插件中【envs 非必须,数组,当前插件在哪些环境变量里执行,不定义则默认执行】是如何配置呢?

Jiiiiiin commented 6 years ago

'use strict'

module.exports = {
  options: {
    env: 'dev'
  },
  plugins: [
    'vux-ui', 'inline-manifest',
    {
      name: 'duplicate-style',
      envs: ['production']
    },
    {
      name: 'progress-bar',
      envs: ['development']
    },
    {
      name: 'less-theme',
      path: 'src/assets/vux/vux-theme.less'
    }
  ]
}