首页 > 其他 > 详细

Vue 那些事

时间:2020-04-02 22:38:30      阅读:79      评论:0      收藏:0      [点我收藏+]

Vue Cli 环境变量和模式

通过传递 --mode 选项参数为命令行覆写默认模式。例如,如果你想要在构建命令中使用开发环境变量,请在你的 package.json 脚本中加入:

"dev-build": "vue-cli-service build --mode development",

 

 

配置文件vue.config.js

 

‘use strict‘
const path = require(‘path‘)
const CompressionPlugin = require(‘compression-webpack-plugin‘)
const FileManagerPlugin = require(‘filemanager-webpack-plugin‘)

process.env.VUE_APP_VERSION = require(‘./package.json‘).version

function resolve(dir) {
    return path.join(__dirname, dir)
}

module.exports = {
    outputDir: process.env.VUE_APP_OUTPUT_DIR,
    configureWebpack: config=>{
        config.optimization.splitChunks = {
            cacheGroups: {
                aliOss: {
                    name: ‘ali-oss‘,
                    test: /[\\/]node_modules[\\/]ali-oss/,
                    priority: -8,
                    chunks: ‘initial‘
                },
                elementUi: {
                    name: ‘element-ui‘,
                    test: /[\\/]node_modules[\\/]element-ui/,
                    priority: -9,
                    chunks: ‘initial‘
                },
                vendors: {
                    name: ‘chunk-vendors‘,
                    test: /[\\/]node_modules[\\/]/,
                    priority: -10,
                    chunks: ‘initial‘
                },
                common: {
                    name: ‘chunk-common‘,
                    minChunks: 2,
                    priority: -20,
                    chunks: ‘initial‘,
                    reuseExistingChunk: true
                }
            }
        }
    },
    chainWebpack: config => {
        // 解决ie11兼容ES6
        // config.entry(‘main‘).add(‘babel-polyfill‘)
        // 开启图片压缩
        config.module.rule(‘images‘)
            .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
            .use(‘image-webpack-loader‘)
            .loader(‘image-webpack-loader‘)
            .options({bypassOnDebug: true})

        // 开启js、css压缩
        if (process.env.NODE_ENV === ‘production‘) {
            config.plugin(‘compressionPlugin‘)
                .use(new CompressionPlugin({
                    test: /\.js$|\.html$|.\\css/, // 匹配文件名
                    threshold: 10240, // 对超过10k的数据压缩
                    deleteOriginalAssets: false // 不删除源文件
                }))
            config.plugin(‘fileManagerPlugin‘)
                .use(new FileManagerPlugin({  //初始化 filemanager-webpack-plugin 插件实例
                    onEnd: {
                        delete: [   //首先需要删除项目根目录下的dist.zip
                            `./dist/dist_v${process.env.VUE_APP_VERSION}.zip`,
                            ‘./dist/dist.zip‘,
                        ],
                        archive: [ //然后我们选择dist文件夹将之打包成dist.zip并放在根目录
                            {source: ‘./dist‘, destination: `./dist/dist_v${process.env.VUE_APP_VERSION}.zip`},
                            {source: ‘./dist‘, destination: ‘./dist/dist.zip‘},
                        ]
                    }
                }))
        }
        // 开启js、css压缩
        if (process.env.VUE_APP_ENV === ‘yst-production‘) {
            config.plugin(‘compressionPlugin‘)
                .use(new CompressionPlugin({
                    test: /\.js$|\.html$|.\\css/, // 匹配文件名
                    threshold: 10240, // 对超过10k的数据压缩
                    deleteOriginalAssets: false // 不删除源文件
                }))
            config.plugin(‘fileManagerPlugin‘)
                .use(new FileManagerPlugin({  //初始化 filemanager-webpack-plugin 插件实例
                    onEnd: {
                        delete: [   //首先需要删除项目根目录下的dist.zip
                            ‘./dist-yst/dist.zip‘,
                        ],
                        archive: [ //然后我们选择dist文件夹将之打包成dist.zip并放在根目录
                            {source: ‘./dist-yst‘, destination: ‘./dist-yst/dist.zip‘},
                        ]
                    }
                }))
        }
    },
    devServer: {
        host: ‘0.0.0.0‘,
        port: 9111
    },
    productionSourceMap: false
}

  

Vue 那些事

原文:https://www.cnblogs.com/buyiblogs/p/12622858.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!