一、本地项目打包
1. 安装依赖
确保项目依赖完整:
npm install # 或 yarn install
2. 环境配置
在项目根目录创建环境文件,区分开发和生产环境:
.env.production(生产环境)
前端 Vue 项目的完整打包与部署流程。内容包括安装依赖与环境配置,执行生产构建命令。提供了打包优化方案,如体积分析、代码分割及 CDN 引入。部署方式涵盖静态托管服务、Nginx 自有服务器及 Docker 容器化。此外还解决了静态资源路径、跨域及缓存等常见问题,并给出了 GitHub Actions 和 Jenkins 自动化部署示例。最后包含部署后验证步骤,确保项目高效稳定上线。
确保项目依赖完整:
npm install # 或 yarn install
在项目根目录创建环境文件,区分开发和生产环境:
.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
使用 Vue CLI 进行生产构建:
npm run build # 或 yarn build
dist/ 文件夹,包含:
index.html(入口文件)css/(样式文件)js/(脚本文件)fonts/(字体文件)img/(图片资源)使用 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
() => import('./Component.vue'))。gzip/brotli 压缩。CDN 引入:将 vue、vue-router 等库通过 CDN 加载。
// vue.config.js
module.exports = { configureWebpack: { externals: { vue: 'Vue', 'vue-router': 'VueRouter' } } };
适用于 Netlify、Vercel、GitHub Pages 等平台:
dist/ 目录推送到代码仓库。npm run build。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; } }
构建并运行容器:
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;"]
在 vue.config.js 中配置 publicPath:
module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/your-subpath/' : '/' };
开发环境配置代理(vue.config.js):
module.exports = { devServer: { proxy: { '/api': { target: 'http://api-server:3000', changeOrigin: true } } } };
为文件名添加哈希(默认已配置):
// vue.config.js
module.exports = { filenameHashing: true // 生成形如 app.4a3b2c1d.js };
在 .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
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' } } } }
按此流程操作,可确保 Vue 项目高效、稳定地部署到生产环境。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online