当前位置: 首页 > news >正文

typescript+vue+node项目打包部署

部署 TypeScript + Vue + Node.js 项目的步骤

前端 Vue 部分打包

确保前端项目根目录下已安装依赖,运行以下命令生成静态文件:

npm run build

默认输出目录为 dist/,包含 HTML、CSS、JS 等静态资源。

后端 Node.js 部分构建

在 Node.js 项目根目录下,编译 TypeScript 代码为 JavaScript:

npx tsc

或通过 tsconfig.json 配置自定义输出目录(如 build/)。
确保生产环境依赖已安装:

npm install --production

服务器配置

将前端静态文件(dist/)和后端构建产物(如 build/)上传至服务器。
推荐使用 PM2 管理 Node.js 进程:

pm2 start build/index.js --name "your-app"

配置 Nginx 代理前端请求和后端 API:

server {listen 80;server_name your-domain.com;location / {root /path/to/dist;try_files $uri $uri/ /index.html;}location /api {proxy_pass http://localhost:3000;proxy_set_header Host $host;}
}

环境变量处理

前端环境变量需在构建时通过 .env.production 文件注入:

VUE_APP_API_URL=https://your-api-domain.com

后端环境变量可通过 .env 文件或系统环境变量加载,推荐使用 dotenv 库。

自动化部署(可选)

使用 CI/CD 工具如 GitHub Actions、Jenkins 或 Docker 容器化部署。
示例 Dockerfile 片段:

# 前端构建
FROM node:16 as frontend
WORKDIR /app
COPY frontend/ .
RUN npm install && npm run build# 后端运行
FROM node:16
WORKDIR /app
COPY backend/ .
COPY --from=frontend /app/dist ./public
RUN npm install --production
EXPOSE 3000
CMD ["node", "build/index.js"]


文章转载自:

http://9efoR2Xw.skfkx.cn
http://u1cDw10L.skfkx.cn
http://6wyqvBiK.skfkx.cn
http://39kFrm8I.skfkx.cn
http://wV4TmWNt.skfkx.cn
http://WgCake4U.skfkx.cn
http://0OdPLqrh.skfkx.cn
http://uqifY6ER.skfkx.cn
http://J5ttFTuq.skfkx.cn
http://g7qsEmc3.skfkx.cn
http://hIQ5ob8a.skfkx.cn
http://GFZXFmkg.skfkx.cn
http://RoLiOiuF.skfkx.cn
http://l3dFWz45.skfkx.cn
http://XolnKBqi.skfkx.cn
http://OvSkpYqb.skfkx.cn
http://T7yQ78nj.skfkx.cn
http://JjkFwVI9.skfkx.cn
http://Hgg2jT6Q.skfkx.cn
http://M0UgWIG7.skfkx.cn
http://bX44iLkz.skfkx.cn
http://JOqL17B8.skfkx.cn
http://KXSPuGGB.skfkx.cn
http://c9n0DWIe.skfkx.cn
http://Ij2kFGiC.skfkx.cn
http://imRBfUTy.skfkx.cn
http://qZ3kJZVW.skfkx.cn
http://HHcfhw8x.skfkx.cn
http://wgpnFNNJ.skfkx.cn
http://XgseoX13.skfkx.cn
http://www.dtcms.com/a/386103.html

相关文章:

  • Python/JS/Go/Java同步学习(第十五篇)四语言“字符串去重“对照表: 财务“小南“纸式去重术处理凭证内容崩溃(附源码/截图/参数表/避坑指南)
  • 数据库基础知识入门:从概念到架构的全面解析
  • 负载均衡器和CDN层面保护敏感文件:防止直接访问.git等敏感目录
  • 微算法科技(NASDAQ: MLGO)研究隐私计算区块链框架,赋能敏感数据流通
  • 分析并预测糖尿病患者 R
  • 【Cesium 开发实战教程】第四篇:动态数据可视化:实时 GPS 轨迹与时间轴控制
  • 大数据毕业设计选题推荐-基于大数据的快手平台用户活跃度分析系统-Spark-Hadoop-Bigdata
  • HTML打包EXE工具中的WebView2内核更新指南
  • 固定资产管理软件是什么?哪家好?对比分析10款产品
  • gdb-dashboard使用
  • 【脑电分析系列】第13篇:脑电源定位:从头皮到大脑深处,EEG源定位的原理、算法与可视化
  • 【51单片机】【protues仿真】基于51单片机SHT11温湿度系统
  • 【Vue3 ✨】Vue3 入门之旅 · 第二篇:安装与配置开发环境
  • 【30】C# WinForm入门到精通 ——字体控件FontDialog 【属性、方法、事件、实例、源码】
  • 使用Nginx+uWSGI部署Django项目
  • 芯伯乐低噪声轨到轨运放芯片XAD8605/8606/8608系列,11MHz带宽高精度信号调理
  • FPGA硬件设计6 ZYNQ外围-HDMI、PCIE、SFP、SATA、FMC
  • FPGA硬件设计5 ZYNQ外围-USB、SD、EMMC、FLASH、JTAG
  • 知识图谱中:基于神经网络的知识推理解析~
  • 深度学习面试题:请介绍梯度优化的各种算法
  • python资源释放问题
  • ATR网格---ATR计算原理研究运用
  • 用Postman实现自动化接口测试
  • Hyper Rust HTTP 库入门教程
  • 软考系统架构设计师之软件架构评估法-ATAM
  • 贪心算法应用:图着色问题(顶点着色)
  • 基于51单片机的电子琴弹奏及播放系统
  • 守护每一滴水的清澈与安全
  • Python入门教程之成员运算符
  • 简易BIOS设置模拟界面设计