Ubuntu 下 Node.js 项目管理全流程
一 环境与版本管理
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bashsource ~/.bashrcnvm install --lts、nvm use 18、nvm alias default 18二 项目初始化与依赖管理
npm init -y 创建 package.json"start": "node src/app.js""dev": "nodemon src/app.js""test": "jest"npm i pkg、npm i -D pkg、npm up、npm rm pkgnpm i -g yarn → yarn add pkg、yarn add -D pkg、yarn up、yarn remove pkgnpm i -g pnpm → pnpm add pkg、pnpm add -D pkg、pnpm up、pnpm rm pkgnode_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
四 本地开发工作流与前后端分离
npm i -D nodemon,npm run devnpm i dotenv,在入口处 require('dotenv').config()my-project/{frontend,backend}/npm i express cors,启用 CORS 处理跨域五 进程守护 部署与协作
npm i -g pm2
pm2 start src/app.js --name my-apipm2 status、pm2 logs、pm2 monitpm2 startup、pm2 savesudo 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 nodeFROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
CMD ["node","src/app.js"]