前端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

自建文件格式转换平台:VERT 开源 Web 工具服务器部署指南

自建文件格式转换平台:VERT 开源 Web 工具服务器部署指南

只要你经常处理文件,一定遇到过下面这些情况: 📄 Word 要转 PDF,Excel 要转 CSV 🖼️ 图片格式杂乱:PNG、JPG、WEBP 来回换 🎥 视频、音频格式不兼容,软件打不开 😵 每次转换都要找工具、装软件,非常零碎 🔒 有些文件不想上传到第三方网站 后来我开始用 VERT 这种开源的文件格式转换 Web 工具,并把它部署在服务器上之后,文件转换这件事一下子顺畅了很多: 👉 一个页面,解决大多数格式转换需求。 这篇文章我就按真实部署和使用思路,教你用 莱卡云服务器 搭建 VERT,打造一套随时可用、格式齐全、数据可控的文件转换服务。 一、VERT 是什么?适合解决什么问题? 一句话说明白: 👉 VERT 是一款用于文件格式转换的开源 Web 工具,支持多种常见文件类型之间的相互转换,通过浏览器即可完成操作。 它非常适合这些场景: * 📄 文档格式转换(

DeerFlow操作手册:WebUI界面功能按钮详细说明

DeerFlow操作手册:WebUI界面功能按钮详细说明 1. DeerFlow是什么:你的个人深度研究助理 DeerFlow不是普通聊天工具,而是一个能帮你做深度研究的智能助手。它不只回答问题,还能主动搜索网络、运行代码、整理报告,甚至把研究成果变成播客。如果你需要查资料、写分析、做技术调研,或者想快速了解一个陌生领域,DeerFlow就像一位随时待命的研究搭档——不用你手动翻网页、复制粘贴、调试代码,它自己就能完成一整套研究流程。 它背后整合了真实搜索引擎(比如Tavily和Brave Search)、Python执行环境、MCP服务接口,以及高质量语言模型。这意味着它不只是“说得好”,而是“做得实”:能验证信息来源、跑通数据逻辑、生成可读性强的结构化报告。对工程师、产品经理、研究员、内容创作者来说,这种“从提问到交付”的闭环能力,比单纯的文字生成更有实际价值。 2. WebUI界面概览:一眼看懂每个按钮是干什么的 打开DeerFlow的WebUI界面后,你会看到一个简洁但功能丰富的操作面板。它没有堆砌大量选项,所有核心功能都通过几个关键按钮组织起来。下面我们就按使用

WebPlotDigitizer完整指南:5步从图表图像提取精确数据

WebPlotDigitizer完整指南:5步从图表图像提取精确数据 【免费下载链接】WebPlotDigitizerComputer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/web/WebPlotDigitizer WebPlotDigitizer是一款革命性的计算机视觉辅助工具,专为从图表图像中快速提取数值数据而设计。无论你是科研人员需要从论文图表获取实验数据,还是工程师要从技术报告提取趋势曲线,这个基于计算机视觉的工具都能在几分钟内帮你完成数据转换。支持XY轴、极坐标、三元图和地图等多种图表类型,让数据提取变得前所未有的简单。 🚀 快速入门:环境搭建与启动 环境检查与准备 开始之前,请确认你的系统已安装必要组件: node -v # 检查 Node.js 版本(需 v14+) npm -v # 检查 npm 版本(需

19. Flutter与Web混合开发实践:打造跨平台的统一体验

19. Flutter与Web混合开发实践:打造跨平台的统一体验 引言 Flutter 是一种强大的跨平台开发框架,它不仅可以开发移动应用,还可以开发 Web 应用。随着 Flutter Web 的不断成熟,Flutter 与 Web 混合开发成为了一种新的趋势。作为一名把代码当散文写的 UI 匠人,我始终认为:好的技术应该是无缝的,它应该让开发者能够自由地在不同平台之间切换,而不需要为每个平台重新开发。Flutter 与 Web 混合开发,就是为了实现这种无缝的体验。 什么是 Flutter 与 Web 混合开发? Flutter 与 Web 混合开发是指在同一个项目中,同时使用 Flutter 和 Web 技术(如 HTML、CSS、JavaScript)来开发应用。这种开发方式可以结合