在打包发布Vue前端项目时,每次都需要手动压缩dist文件夹,然后以时间命名,然后部署到web容器中,过程比较繁琐。

而且不同的人员打包,命名规则也不一样,这就导致服务器上一堆压缩包文件,排序查找不方便。

这里查阅了相关资料,并且亲自测试了Vue项目在npm run build打包时,自动打出时间命名的压缩包。

Vue项目build出压缩包,主要依赖于filemanager-webpack-plugin插件。Vue-cli2.0和3.0 的配置方式不一样,接下来针对两种方式创建的Vue项目如何配置打包进行说明。

Vue-Cli 3.0 项目配置build压缩包

Vue-Cli 3.0 创建的Vue项目所有的配置都在vue.config.js文件中,

1.安装依赖

cnpm install filemanager-webpack-plugin moment  --save-dev

2.配置插件使用

在vue.config.js中引入依赖,并配置文件名规则

const FileManagerPlugin = require('filemanager-webpack-plugin')
let  moment = require('moment')
const NAME=moment().format('YYYYMMDDHH')

在module.exports下添加

configureWebpack: {
        plugins: [
            new FileManagerPlugin({
                events: {
                    onEnd: {
                        delete: ['./dist/*.zip'],
                        archive: [
                            {source: './dist', destination: `./dist/${NAME}.zip`},
                        ]
                    }
                }
            })
        ]
    }

如果已有,configureWebpack.plugins,则只复制中间的插件配置项即可。

3.完整示例

const FileManagerPlugin = require('filemanager-webpack-plugin')
let  moment = require('moment')
const NAME=moment().format('YYYYMMDDHH')
module.exports = {
    lintOnSave: true,
    publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
    chainWebpack: config => {
        config
            .plugin('html')
            .tap(args => {
                args[0].title = '****农业大数据平台'
                return args
            })
    },
    configureWebpack: {
        plugins: [
            new FileManagerPlugin({
                events: {
                    onEnd: {
                        delete: ['./dist/*.zip'],
                        archive: [
                            {source: './dist', destination: `./dist/${NAME}.zip`},
                        ]
                    }
                }
            })
        ]
    }
}

4.执行npm run build打包命令,就有提示了,可以查看dist文件夹下有压缩包了

注意:YYYY-MM-DD 这种命名规则的,可能会无法打包,我使用的是"filemanager-webpack-plugin": "^7.0.0-beta.0",有漏洞,这种时间格式无法打包

打包

Vue-Cli 2.0 项目配置build压缩包

Vue-Cli 2.0的项目配置方式与Vue-Cli 3.0 配置方式不同,主要是只能使用filemanager-webpack-plugin3.0以下的版本

1.依赖安装

cnpm install filemanager-webpack-plugin@^2.0.5  --save-dev
cnpm install moment  --save-dev

2.在webpack.prod.conf.js文件顶部引入依赖

const FileManagerPlugin = require('filemanager-webpack-plugin')
let  moment = require('moment')
const NAME=moment().format('YYYYMMDDHH')

3.在webpack.prod.conf.js文件底部的module.exports = webpackConfig之前,添加如下代码:

webpackConfig.plugins.push(
  new FileManagerPlugin({
      onEnd: {
        delete: ['./dist/*.zip'],
        archive: [
          {source: './dist', destination: `./dist/${NAME}.zip`},
        ]
      }
  })
)

注意,这里由于FileManagerPlugin的版本不一样,这里的配置项中,相对于前面**Vue-Cli 3.0 **中少了 events: {}。如果还按照前面的配置,则不会生成压缩包。

其他

这里我只配置了打zip格式,如果需要其他格式,可以参考filemanager-webpack-plugin插件官网的相关配置

以上为个人经验,希望能给大家一个参考,也希望大家多多支持Devmax。

Vue项目打包(build)时,自动打以时间命名的压缩包方式的更多相关文章

  1. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  2. ios – Xcode 5持续集成CodeSign失败

    嗨,您好.我正在尝试使用xcode5和OSXServer为我的iOS应用程序配置持续集成.我将证书和p12添加到系统KeyChain,我还将配置文件复制到配置文件的服务器文件夹.集成失败,日志显示错误消息短消息:Command/usr/bin/codesignFailedwithexitcode1完整信息:CodeSign/Library/Server/Xcode/Data/BotRuns/Cac

  3. ios – Swift 2.0 – Google Analytics事件构建器错误 – NSMutableDictionary无法转换为[NSObject:AnyObject]

    完美地使用Swift1.2代码:错误:任何的想法?解决方法你错了你的事件.这是正确的方法和一种方法.将事件跟踪器初始化为NSObject在发送方法中将NSObject转换为Anyobject.

  4. ios – 如何存档包含自定义框架的应用程序?

    我有一个我创建的xcode框架项目,我可以编译成一个myframework.framework文件.编译之后,我将这个框架拖到我应用程序的Frameworks项目文件夹中,然后利用框架中的类,将适当的import语句添加到需要它的任何类;这允许我的应用程序成功编译与在框架中定义的类的引用.要使应用程序成功部署到我的设备,我还将我的自定义框架添加到我的目标的“嵌入式二进制文件”部分.有了这一切,我可

  5. ios – 1个用于体系结构x86_64的重复符号

    我不确定我做错了什么.我将项目文件夹移动到另一个文件夹,并将备份文件夹复制到桌面.我试图打开备份项目并构建,我收到了链接器错误.所以我决定删除备份文件夹并将项目文件夹移回桌面.我不能再编译并收到以下错误.没有派生数据文件夹还是一样1.我打开了DerivedData文件夹并删除了其中的所有内容2.我删除了所有模拟器中的所有项目3.我重新启动了xCode,Clean和build还是一样将项目添加到Gi

  6. ios – 链接错误/ Build / Products / Debug-iphonesimulator文件未找到

    我有Xcode的问题,不断给我一个链接器错误,它不构建项目.以下是我得到的错误ld:filenotfound:/Users/someuser/Library/Developer/Xcode/DerivedData/MAR-akbwbarcniqxytctbebckkelkbxs/Build/Products/Debug-iphonesimulator/MAR.app/MARclang:error:

  7. iOS 64位兼容性

    我的构建设置如下所示:我的部署目标是iOS6.0.我只需要确认该应用程序是64位兼容的,我都是iOS新手,不久前接管了一个相当大的项目,所以我宁愿要求100%肯定.只是为了使事情变得更清楚,你如何确保iOS应用程序是64位兼容的?

  8. xcode – 苹果LLVM编译3.1错误

    只需更新Xcode到4.3,现在我无法建立我的应用程序.我收到这个错误:有人有这个问题吗?

  9. RubyMotion Build:错误!找不到名为`(?-mix:iOS Team Provisioning Profile)’的配置配置文件

    我正在尝试构建一个简单的RubyMotion应用程序,以便我可以在我的iPhone上传输.我执行了rakebuild:device关于这个错误的任何想法?你应该做这个:InordertosuccessfullyrunaRubyMotionapponanon-jailbrokeniPhone3GSIhadto:DeletealloftheexpiredprovisioningprofilesintheMacOSXKeychainAccessapp.Yeah,mypastislitteredwithmanyr

  10. ios – Apple Mach-O Linker&Ditto Error – Xcode 8

    解决方法>退出Xcode>重新启动系统>选择Xcode–>优先.这将打开一个弹出窗口.选择“位置”.在位置中,您将看到“派生数据”.点击路径旁边的箭头图标.这将打开一个包含“派生数据”的文件夹,将其删除.>清洁产品并运行

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部