前端部署自动上传资源文件到cdn/oss 解决路由和访问慢的问题

参考文档:webpack-aliyun-oss-plugin - npm

安装依赖,这是一个预编译环境下的包

复制代码
npm install webpack-aliyun-oss-plugin --save-dev

以下代码的意思是:

webpack中引入一个oss上传插件,并且给予其初始参数,插件根据publicPath提供的域名后的path,将打包的文件一个个按照上传到path对应的目录中,并且根据from的路径指示,将./dist/static下的所有文件都按路径上传

1,关键点一:/scrm/xxa/xxb 无论建立多少级,oss桶都是自动建立的,无需人手动先把这些目录建立了,例如上面的path对应oss的目录/scrm/xxa/xxb下面,./dist/static下的文件也会被上传到这个目录下,这个目录却不需要先行建立

复制代码
publicPath: process.env.NODE_ENV === 'production' ? `https://static-global.uncledesk.com/${version_path}/` : '/',
  
chainWebpack: config => {
        config.resolve.symlinks(true); // 修复热更新失效
        // 如果使用多页面打包,使用vue inspect --plugins查看html是否在结果数组中
        config.plugin("html").tap(args => {
            // 修复 Lazy loading routes Error
            args[0].chunksSortMode = "none";
            return args;
        });
        if (IS_PROD) {
            config.plugin('webpack-aliyun-oss-plugin')
          			// 原案例中这里用了require, 我通过vue.config.js官方文档了解到,不加
          			// 也可以,事实上不加也可以
                .use('webpack-aliyun-oss-plugin', [{
                    from: ['./dist'],
                    region: 'oss-us-west-1',
                    ak: 'xxxx',
                    sk: 'xxxxxxxx',
                    bucket: 'static-oss-cdn',
                    filter: function (asset) {
                        return !/\.html$/.test(asset); // 不上传index.html
                    }
                }]);
        }
}

version_path: "1_3_25" 可以通过 package.json 中的version参数,然后根据点转下划线,为何强调这一点,因为如果一开始不做好版本隔离,那么以后你想从cdn删除,就够麻烦了,所以这里特别提醒记得做版本文件夹隔离,不用的版本到时直接删掉就OK了

相关推荐
Zk.Sun6 分钟前
【RK3588 Mali610 适配 Qt6 】
前端·javascript·vue.js
不想吃菠萝9 分钟前
vue3+ts 使用postcss-pxtorem依赖进行rem适配
前端·javascript·vue.js·postcss
人民广场吃泡面25 分钟前
React新手快速入门学习指南(2026最新版)
前端·react.js·前端框架
kyriewen1133 分钟前
本地存储全家桶:从localStorage到IndexedDB,把数据塞进用户浏览器
开发语言·前端·javascript·ecmascript·html5
油丶酸萝卜别吃1 小时前
本地调试跨域问题:关闭 Chrome 同源策略的技巧
前端·chrome
Rysxt_1 小时前
Vue 组件穿透(透传)完全指南:从背景到实战
前端·javascript·vue.js
浮尘笔记1 小时前
从零开始:Android环境搭建与WebView套壳应用
android·前端·android studio·安卓
束尘1 小时前
Vue3 + Element Plus 实现 ZIP 压缩包在线预览(支持图片插入 / 文件预览)
前端·javascript·vue.js
伯远医学1 小时前
如何判断提取的RNA是否可用?
java·开发语言·前端·javascript·人工智能·eclipse·创业创新
全栈技术负责人2 小时前
Claw Code 系统架构与 Agent 运行机制解析
前端·系统架构·ai编程