恳请大牛们指导一下,关于vue-config 配置构建的问题

1.项目使用ivew-admin

2.问题为:脚本bulid:uat 的时候 构建的js、css 没有被chunk 为小文件;但是 build:production 的时候 js,css 都被chunk了的;

如图:
bulid:uat
clipboard.png

build:production

clipboard.png

  1. bulid:uat 对于的脚本为:"build:uat": "cross-env NODE_ENV=uat vue-cli-service build",
    "build:production": "vue-cli-service build",

4.vue.config.js 的配置为:

module.exports = {
  // Project deployment base
  // By default we assume your app will be deployed at the root of a domain,
  // e.g. https://www.my-app.com/
  // If your app is deployed at a sub-path, you will need to specify that
  // sub-path here. For example, if your app is deployed at
  // https://www.foobar.com/my-app/
  // then change this to '/my-app/'
  baseUrl: BASE_URL,
  // tweak internal webpack configuration.
  // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md

//  webpack插件配置
  configureWebpack: config => {
    let plugins = []
    // if (process.env.NODE_ENV !== 'development') {
      config.plugins = [...config.plugins, ...plugins]
    // }
  },

  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src')) // key,value自行定义,比如.set('@@', resolve('src/components'))
      .set('_c', resolve('src/components'))
      .set('_conf', resolve('config'))
  },
  // 打包时不生成.map文件
  productionSourceMap: false,
  // 这里写你调用接口的基础路径,来解决跨域,如果设置了代理,那你本地开发环境的axios的baseUrl要写为 '' ,即空字符串
  // devServer: {
  //   proxy: 'http://management-test2.tuhuanjk.com'
  // }
  devServer: {
    proxy: {
      '/api': {
        target: '',
        changeOrigin: true
      }
    }
  }


}

请大神指导一下,目标是想 运行 bulid:uat 时,同样chunk,js 和 css 文件; 谢谢!

阅读 3.1k
3 个回答

chunk只是一个文件命名而已,你是指uat环境下没有被压缩代码?

把bulid:uat的配置项改成和build:production的一毛一样,应该就没有问题了呀。而且process.env.NODE_ENV都是'production'

之所以这样是webpack及webpack插件起到的作用,production下除了压缩,就是提取公共文件,去掉无用的文件,vondor.js就是一个公公文件,app.js是页面首要加载的文件,其它的一些都是根据用户的触发效果动态加载的。你应该知道treeShaking,code spliting吧。

推荐你看一下webpack-book这本电子书。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题