Ubuntu Nodejs如何进行项目管理
导读:Ubuntu 下 Node.js 项目管理全流程 一 环境与版本管理 使用 NVM 管理多个 Node.js 版本,便于在不同项目间切换与回滚: 安装 NVM:curl -o- https://raw.githubusercontent...
Ubuntu 下 Node.js 项目管理全流程
一 环境与版本管理
- 使用 NVM 管理多个 Node.js 版本,便于在不同项目间切换与回滚:
- 安装 NVM:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash - 重新加载:
source ~/.bashrc - 安装与切换版本:
nvm install --lts、nvm use 18、nvm alias default 18
- 安装 NVM:
- 生产环境优先选择 LTS 版本,稳定性与安全性更好。
- 若不使用 NVM,也可通过 APT 或 NodeSource 安装,但多版本切换与隔离不如 NVM 灵活。
二 项目初始化与依赖管理
- 初始化与脚本约定:
npm init -y创建 package.json- 在 package.json 中约定常用脚本:
"start": "node src/app.js""dev": "nodemon src/app.js""test": "jest"
- 依赖管理三种主流工具(择一为主,团队内保持一致):
- npm:
npm i pkg、npm i -D pkg、npm up、npm rm pkg - Yarn:
npm i -g yarn→yarn add pkg、yarn add -D pkg、yarn up、yarn remove pkg - pnpm:
npm i -g pnpm→pnpm add pkg、pnpm add -D pkg、pnpm up、pnpm rm pkg
- npm:
- 建议将
node_modules/与.env加入 .gitignore,使用npm ci或yarn install --frozen-lockfile在 CI/CD 中可重复安装。
三 目录结构与代码组织
- 推荐分层与模块化,提升可读性与可维护性(可按需裁剪):
- 示例结构:
project-root/ ├─ src/ │ ├─ api/ # 路由与控制器 │ ├─ config/ # 配置与环境变量 │ ├─ models/ # 数据模型 │ ├─ services/ # 业务逻辑 │ ├─ loaders/ # 启动流程拆分 │ └─ app.js # 入口 ├─ test/ # 测试 ├─ .env # 环境变量 ├─ .gitignore ├─ package.json └─ README.md
- 示例结构:
- 配置集中管理、路由与业务分离、启动时按 loader 初始化,有助于大型项目的可测试与可维护。
四 本地开发工作流与前后端分离
- 本地开发:
- 使用 nodemon 监听变更:
npm i -D nodemon,npm run dev - 使用 dotenv 管理环境:
npm i dotenv,在入口处require('dotenv').config()
- 使用 nodemon 监听变更:
- 前后端分离示例:
- 目录:
my-project/{ frontend,backend} / - 后端(示例端口 3001):
npm i express cors,启用 CORS 处理跨域 - 前端(示例端口 3000):使用 Create React App 或 Vue CLI 启动开发服务器
- 开发期通过前端开发服务器代理 API 请求到后端,避免 CORS 问题;生产期由 Nginx 或网关统一代理。
- 目录:
五 进程守护 部署与协作
- 进程守护与自启动:
- 使用 PM2:
npm i -g pm2- 启动:
pm2 start src/app.js --name my-api - 常用:
pm2 status、pm2 logs、pm2 monit - 开机自启:
pm2 startup、pm2 save
- 启动:
- 使用 PM2:
- 系统服务方式(不使用 PM2 时):
- 创建服务:
sudo nano /etc/systemd/system/node.service[Unit] Description=My Node.js App After=network.target [Service] WorkingDirectory=/home/ubuntu/my-project ExecStart=/usr/bin/node /home/ubuntu/my-project/src/app.js Restart=always User=ubuntu Environment=NODE_ENV=production [Install] WantedBy=multi-user.target - 启用:
sudo systemctl daemon-reload & & sudo systemctl enable --now node
- 创建服务:
- 容器化与反向代理:
- Docker 示例:
FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . CMD ["node","src/app.js"] - 使用 Nginx 反向代理到容器或 Node 服务,统一域名与端口、支持压缩与缓存。
- Docker 示例:
- 团队协作与任务管理:
- 结合 PingCode(需求/缺陷/版本发布)与 Worktile(任务/文件/沟通)进行研发协作与进度跟踪,提升交付效率。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Nodejs如何进行项目管理
本文地址: https://pptw.com/jishu/768027.html
