如何将Vue项目打包后部署到CDN上?

在Vue项目中,打包后使用CDN(内容分发网络)可以显著提高项目的加载速度和性能,以下是详细的步骤和方法:

使用插件自动引入CDN资源

1、安装vite-plugin-cdn-import

如何将Vue项目打包后部署到CDN上?插图1
(图片来源网络,侵删)

需要安装vite-plugin-cdn-import插件,这个插件可以帮助我们在打包时自动引入CDN资源。

使用npm或yarn进行安装:

     npm install vite-plugin-cdn-import --save-dev

或者

     yarn add vite-plugin-cdn-import --dev

2、配置vite.config.ts

在项目的根目录下的vite.config.ts文件中,引入并配置vite-plugin-cdn-import插件。

如何将Vue项目打包后部署到CDN上?插图3
(图片来源网络,侵删)

示例配置如下:


     import { defineConfig } from 'vite'
     import vue from '@vitejs/plugin-vue'
     import { autoComplete, Plugin as importToCDN } from "vite-plugin-cdn-import";
     import { visualizer } from 'rollup-plugin-visualizer';
     export default defineConfig({
       plugins: [
         vue(),
         importToCDN({
           modules: [
             {
               name: 'vue',
               var: 'Vue',
               path:https://unpkg.com/vue@3.2.45/dist/vue.global.js,
             },
             {
               name: 'vue-demi',
               var: 'VueDemi',
               path:https://unpkg.com/vue-demi@0.13.11,
             },
             {
               name: 'vue-router',
               var: 'VueRouter',
               path:https://unpkg.com/vue-router@4.1.6,
             },
             {
               name: 'element-plus',
               var: 'ElementPlus',
               path: 'https://unpkg.com/element-plus@2.3.3/dist/index.full.js',
               // css: 'https://unpkg.com/element-plus@2.3.3/dist/index.css'
             },
           ],
         }),
         visualizer(),
       ],
     })

在这个配置中,我们定义了需要通过CDN引入的模块及其对应的CDN路径,插件会在打包时自动将这些资源替换为CDN链接。

3、打包并运行

运行打包命令:

     npm run build

打包完成后,可以在dist/index.html中看到自动添加的CDN链接,将项目部署到服务器上,即可使用CDN加速资源加载。

如何将Vue项目打包后部署到CDN上?插图5
(图片来源网络,侵删)

手动配置CDN资源

1、修改index.html

如果不想使用插件,也可以手动在index.html中添加CDN链接,在<head>标签内引入CSS文件,在<body>标签内引入JS文件。

示例如下:

     <!DOCTYPE html>
     <html lang="en">
     <head>
       <meta charset="UTF-8">
       <meta name="viewport" content="width=device-width, initial-scale=1.0">
       <title>Vue App</title>
       <!-引入CSS -->
       <link rel="stylesheet" href="https://cdn.example.com/some-library.css">
     </head>
     <body>
       <div id="app"></div>
       <!-引入JS -->
       <script src="https://cdn.example.com/vue.min.js"></script>
       <script src="https://cdn.example.com/vue-router.min.js"></script>
       <script src="https://cdn.example.com/axios.min.js"></script>
       <script src="https://cdn.example.com/some-library.js"></script>
       <!-built files will be auto injected -->
     </body>
     </html>

2、配置externals

为了防止这些库被打包进最终的bundle中,需要在vue.config.js中配置externals

示例配置如下:

     module.exports = {
       configureWebpack: {
         externals: {
           "vue": "Vue",
           "vue-router": "VueRouter",
           "axios": "axios",
           "some-library": "SomeLibrary",
         }
       }
     }

这样配置后,Webpack会将这些库视为外部依赖,不会将其打包进最终的bundle中。

三、使用阿里云CDN和OSS实现一键上传和部署

1、申请域名并绑定CDN

准备好服务器,申请域名并将其绑定到CDN服务上,在阿里云CDN控制台中添加域名,选择全站加速,并填写源站信息。

配置CNAME解析,将域名指向阿里云分配的CNAME地址。

2、开启OSS服务并上传资源

开通OSS服务,创建Bucket,并将读写权限设置为公共读,这样可以确保客户端能够访问上传的资源。

编写脚本将打包好的dist文件夹上传到OSS,可以使用Node.js编写上传脚本:


     const OSS = require('ali-oss');
     const client = new OSS({
       region: 'oss-cn-hangzhou',
       accessKeyId: 'yourAccessKeyId',
       accessKeySecret: 'yourAccessKeySecret',
       bucket: 'yourBucketName'
     });
     async function put(fileName) {
       let result = await client.put(fileName,./dist/${fileName});
       console.log(File Upload Success: ${fileName});
     }
     const distFiles = fs.readdirSync('./dist');
     distFiles.forEach(file => put(file));

上传完成后,配置CDN缓存规则,确保资源能够从CDN中快速加载。

FAQs

1、为什么使用CDN可以提高项目的加载速度?:CDN通过将资源缓存在全球各地的服务器上,使用户能够从最近的服务器获取资源,减少网络延迟和带宽消耗,从而提高加载速度,CDN还可以分担服务器的压力,提高整体性能。

2、如何在开发环境和生产环境中分别处理CDN资源?:在开发环境中,可以使用本地的npm包进行开发,而在生产环境中,通过配置externals和使用CDN链接来引用资源,这样可以避免在开发环境中因网络问题导致的延迟,同时在生产环境中享受CDN带来的加速效果。

各位小伙伴们,我刚刚为大家分享了有关vue打包后如何cdn的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/81181.html

小末小末
上一篇 2024年10月20日 15:17
下一篇 2024年10月20日 15:30

相关推荐