温馨提示×

Debian JS如何进行项目管理

小樊
45
2025-11-27 09:58:58
栏目: 编程语言

Debian 环境下 JavaScript 项目管理实践

一 环境准备与版本管理

  • 使用 APT 安装 Node.jsnpm,并验证版本:
    • 命令:sudo apt update && sudo apt install -y nodejs npm
    • 验证:node -vnpm -v
  • 使用 NVM 管理多版本 Node.js(推荐):
    • 安装:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    • 加载:source ~/.bashrc
    • 使用:nvm install 18nvm use 18nvm ls-remote
  • 可选:安装 Yarn(替代或补充 npm)
    • Debian 仓库安装:curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.listsudo apt update && sudo apt install -y yarn
    • 验证:yarn --version

二 项目初始化与依赖管理

  • 初始化项目与基本配置:
    • npm init -y 生成 package.json
    • 常用脚本示例:
      • "scripts": { "start": "node index.js", "dev": "node index.js", "build": "webpack" }
  • 依赖管理(npm/yarn)
    • 安装生产依赖:npm install expressyarn add express
    • 安装开发依赖:npm install -D webpack webpack-cli babel-loader @babel/core @babel/preset-envyarn add -D ...
    • 更新/移除:npm update <pkg> / npm uninstall <pkg>yarn upgrade <pkg> / yarn remove <pkg>
  • 版本规范与锁文件
    • 遵循 SemVer 语义化版本;提交时确保生成/更新 package-lock.jsonyarn.lock,保证可重复构建
  • 安全审计
    • npm audit(或 yarn audit)定期检查依赖漏洞并修复

三 模块化与构建流程

  • 采用 ES6 模块 组织代码:
    • 导出:export function greet(name) { return \Hello, ${name}!`; }`
    • 导入:import { greet } from '../modules/moduleA'
  • 使用 Babel 转译 ES6+ 语法(.babelrc 或 babel.config.js)
    • 示例:{ "presets": ["@babel/preset-env"] }
  • 使用 Webpack 打包与优化
    • 示例配置要点:
      • entry: './src/index.js'
      • output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }
      • module.rules 配置 babel-loader,排除 node_modules
      • 生产优化:optimization.splitChunks { chunks: 'all' }
  • 质量与一致性
    • ESLint 做静态检查:eslint --initeslint yourfile.js
    • Prettier 做代码格式化:prettier --write yourfile.js

四 质量保障与协作规范

  • 单元测试
    • 使用 JestVitest 编写测试,例如:
      • import { greet } from './index'
      • test('greet returns correct greeting', () => { expect(greet('World')).toBe('Hello, World!'); })
  • 提交规范与变更记录
    • 采用 Conventional Commits 规范,配合 CommitlintHusky 做 Git 提交前校验
    • 使用 Standard Versionsemantic-release 自动管理 CHANGELOG 与版本号
  • 持续集成
    • GitHub Actions/GitLab CI 中执行:安装依赖、代码检查、单元测试、构建与产物上传
  • 目录与配置建议
    • 标准结构:src/dist/test/package.jsonwebpack.config.js.eslintrc.js.prettierrc.gitignore
    • node_modules/ 与构建产物加入 .gitignore

五 运行与部署

  • 进程管理
    • 使用 PM2 守护进程与日志管理:
      • 安装:sudo npm install -g pm2
      • 启动:pm2 start app.js --name my-app
      • 常用:pm2 statuspm2 logspm2 startuppm2 save
  • 系统服务
    • 使用 systemd 托管(适合系统级长期运行):
      • 示例服务文件 /etc/systemd/system/node.service
        • [Service] WorkingDirectory=/opt/myapp ExecStart=/usr/bin/node /opt/myapp/server.js Restart=always User=www-data Environment=NODE_ENV=production
      • 管理:sudo systemctl daemon-reload && sudo systemctl start node && sudo systemctl enable node
  • 容器化与反向代理
    • Docker 示例 Dockerfile:
      • FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . CMD ["node","server.js"]
    • 使用 Nginx 反向代理到应用端口(如 300080),并配置 proxy_set_header 等头部转发

0