前端vue项目打包及部署的详细说明

一、本地项目打包
1. 安装依赖

确保项目依赖完整:

npm install # 或 yarn install 
2. 环境配置

在项目根目录创建环境文件,区分开发和生产环境:

.env.production(生产环境)

NODE_ENV=production VUE_APP_API_BASE=https://api.your-domain.com

.env.development(开发环境)

NODE_ENV=development VUE_APP_API_BASE=http://localhost:3000/api
3. 执行打包命令

使用 Vue CLI 进行生产构建:

npm run build # 或 yarn build
  • 输出目录:默认生成 dist/ 文件夹,包含:
    • index.html(入口文件)
    • css/(样式文件)
    • js/(脚本文件)
    • fonts/(字体文件)
    • img/(图片资源)

二、打包优化
1. 分析构建体积

使用 webpack-bundle-analyzer 查看打包文件体积:

npm install --save-dev webpack-bundle-analyzer

在 vue.config.js 中配置:

module.exports = { chainWebpack: (config) => { config.plugin('webpack-bundle-analyzer') .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin); } }; 

运行分析:

npm run build -- --report 
2. 优化手段
  • 代码分割:动态导入组件(() => import('./Component.vue'))。
  • 压缩资源:启用 gzip/brotli 压缩。

CDN 引入:将 vuevue-router 等库通过 CDN 加载。

// vue.config.js module.exports = { configureWebpack: { externals: { vue: 'Vue', 'vue-router': 'VueRouter' } } }; 

三、部署方式
1. 静态托管服务(推荐)

适用于 NetlifyVercelGitHub Pages 等平台:

  1. 将 dist/ 目录推送到代码仓库。
  2. 在托管平台关联仓库,设置构建命令为 npm run build
  3. 配置自定义域名和 HTTPS。
2. 自有服务器(Nginx)
  1. 上传 dist/ 到服务器(如 /var/www/your-project)。

 重启 Nginx:

sudo systemctl restart nginx 

配置 Nginx:

server { listen 80; server_name your-domain.com; root /var/www/your-project/dist; index index.html; location / { try_files $uri $uri/ /index.html; # 支持 Vue Router 的 history 模式 } # 代理 API 请求 location /api { proxy_pass http://backend-server:3000; proxy_set_header Host $host; } } 
3. Docker 容器化部署

构建并运行容器:

docker build -t vue-app . docker run -d -p 8080:80 vue-app 

创建 Dockerfile

# 使用 Node 镜像构建 FROM node:16 as build-stage WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build # 使用 Nginx 镜像运行 FROM nginx:alpine as production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] 

四、常见问题与解决
1. 静态资源路径错误

在 vue.config.js 中配置 publicPath

module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/your-subpath/' : '/' }; 
2. 接口跨域问题

开发环境配置代理(vue.config.js):

module.exports = { devServer: { proxy: { '/api': { target: 'http://api-server:3000', changeOrigin: true } } } }; 
3. 浏览器缓存问题

为文件名添加哈希(默认已配置):

// vue.config.js module.exports = { filenameHashing: true // 生成形如 app.4a3b2c1d.js }; 

五、自动化部署(CI/CD)
1. GitHub Actions 示例

在 .github/workflows/deploy.yml 中配置:

name: Deploy on: push: branches: [main] jobs: build-and-deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 16 - run: npm install - run: npm run build - uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./dist 
2. Jenkins 流水线
pipeline { agent any stages { stage('Build') { steps { sh 'npm install' sh 'npm run build' } } stage('Deploy') { steps { sh 'scp -r dist/ user@server:/var/www/your-project' } } } } 

六、部署后验证

  1. 访问页面,检查功能是否正常。
  2. 使用 Chrome DevTools 的 Network 面板确认资源加载无误。
  3. 使用 Lighthouse 进行性能评分。

总结

  • 本地构建:npm run build 生成 dist/。
  • 部署方式:静态托管、自有服务器、Docker 容器化。
  • 优化核心:代码分割、CDN、缓存策略。
  • 自动化:集成 GitHub Actions/Jenkins 实现 CI/CD。

按此流程操作,可确保 Vue 项目高效、稳定地部署到生产环境。

Read more

云端微光,AI启航:低代码开发的智造未来

云端微光,AI启航:低代码开发的智造未来

文章目录 * 前言 * 一、引言:技术浪潮中的个人视角 * 初次体验腾讯云开发 Copilot * 1.1 低代码的时代机遇 * 1.1.1 为什么低代码如此重要? * 1.2 AI 的引入:革新的力量 * 1.1.2 Copilot 的亮点 * 1.3 初学者的视角 * 1.3.1 Copilot 带来的改变 * 二、体验记录:云开发 Copilot 的实际操作与感受 * 2.1 初步接触:云开发 Copilot 的界面和功能布局 * 2.2 操作过程详解:从需求输入到初步成果 * 2.2.1

Flutter for OpenHarmony 实战之基础组件:第十一篇 BottomNavigationBar 与 TabBar 多页切换

Flutter for OpenHarmony 实战之基础组件:第十一篇 BottomNavigationBar 与 TabBar 多页切换

Flutter for OpenHarmony 实战之基础组件:第十一篇 BottomNavigationBar 与 TabBar 多页切换 摘要:一个复杂的 App 通常包含多个功能模块。本文将深入讲解 Flutter 中最核心的两种多页切换模式:底部导航 (BottomNavigationBar) 和顶部选项卡 (TabBar)。我们将探讨 Material 3 风格的新组件 NavigationBar,解决页面切换时的状态丢失问题,并适配鸿蒙系统的底部手势条。 前言 打开你手机里的微信、淘宝或抖音,你会发现它们都有一个共同的架构:底部有 4-5 个图标,点击切换不同的主页面;顶部可能还有“关注/推荐/热榜”这样的分类切换。 这就是移动端最经典的 “底 Tab + 顶 Tab” 双导航架构。 本文你将学到: * BottomNavigationBar (经典) 与

宇树科技机器人核心技术

宇树科技机器人核心技术

前言 宇树科技作为全球足式/人形机器人领域的标杆企业,其技术体系覆盖消费级(Go2)、工业级(B2)、人形(G1/H1)全产品线,以“硬件自研+软件全栈+AI赋能”构建核心壁垒。本文不仅拆解宇树机器人的关键技术(单硬件、单软件、软硬件协同、AI+),还配套就业技能图谱、学习路线与工具推荐,适合机械、电子、计算机、AI领域开发者/求职者参考。 一、宇树科技机器人核心技术全景(附插图建议) 宇树的技术体系可概括为“四层金字塔结构”,从下到上实现“能运动→会运动→智能运动”的进阶: 技术层级核心定位代表技术应用价值底层硬件机器人“躯体骨架”自研伺服电机、分层计算平台、4D激光雷达保障运动性能与环境适配性全栈软件机器人“智慧大脑”MPC/WBC控制算法、SLAM感知融合、ROS2中间件实现精准控制与灵活交互软硬件协同机器人“神经中枢”实时控制闭环、

介绍终身机器人学习的数据集LIBERO

介绍终身机器人学习的数据集LIBERO

1 LIBERO的作用 LIBERO是一个用于研究多任务和终身机器人学习中知识迁移的综合基准测试平台,LIBERO是基于robosuite框架构建的。它专注于机器人操作任务,这些任务需要两类知识: 1. 陈述性知识:关于物体和空间关系的知识 2. 程序性知识:关于运动和行为的知识 2 核心原理 任务生成与基准设计 LIBERO提供了一个程序化生成管道,原则上可以生成无限数量的操作任务。系统包含130个任务,分为四个任务套件,每个套件都有受控的分布偏移: * LIBERO-Spatial/Object/Goal:专注于特定类型知识的迁移 * LIBERO-100:包含需要迁移纠缠知识的100个操作任务 学习框架 系统采用模仿学习作为主要学习方法,因为任务使用稀疏奖励函数(任务完成时获得+1奖励)。LIBERO提供高质量的人类遥操作演示数据集用于训练。 算法与策略架构 LIBERO实现了三种视觉运动策略网络: * bc_rnn_policy:基于RNN的行为克隆策略 * bc_transformer_policy:基于Transformer的行为克隆策略