Debian上JS项目版本迭代的完整流程
在Debian系统上,需先确保具备Node.js运行环境和版本控制工具,这是项目迭代的基础。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc # 加载nvm环境
nvm install --lts # 安装最新的LTS版本(稳定)
nvm use --lts # 切换至该版本
.gitignore文件忽略node_modules/、dist/等目录:git init
echo "node_modules/" > .gitignore
echo "dist/" >> .gitignore
git add .
git commit -m "Initial commit"
通过package.json文件记录项目信息、依赖版本及脚本命令,确保团队协作和迭代的一致性。
npm init,按提示填写项目名称、版本、描述等信息,生成package.json。lodash):npm install lodash --save(自动添加至dependencies)。eslint):npm install eslint --save-dev(自动添加至devDependencies)。npm install会自动生成package-lock.json(或使用npm ci严格根据该文件安装),确保所有环境依赖版本一致。.npmrc文件,可设置私有仓库地址、缓存大小等参数(如registry=https://registry.npmjs.org/)。在package.json中通过scripts字段定义迭代关键步骤(测试、构建、发布),实现自动化。
{
"scripts": {
"test": "jest", // 运行单元测试(需提前安装jest)
"build": "webpack --config webpack.config.js", // 打包项目(需配置webpack)
"lint": "eslint src/", // 代码风格检查
"prepublishOnly": "npm run lint && npm test", // 发布前自动执行检查和测试
"deploy": "pm2 restart app.js" // 部署至生产环境(需安装pm2)
}
}
遵循**语义化版本(SemVer)**规范(MAJOR.MINOR.PATCH),通过工具自动化管理版本号:
npm version patch # 修复bug,版本号变为x.x.1(如1.0.0→1.0.1)
npm version minor # 新增功能,版本号变为x.1.0(如1.0.0→1.1.0)
npm version major # 不兼容更新,版本号变为1.x.0(如1.0.0→2.0.0)
main分支时,自动执行npm version和npm publish:# 示例:GitHub Actions配置(.github/workflows/publish.yml)
name: Publish Package
on:
push:
branches: ["main"]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: '18'
registry-url: 'https://registry.npmjs.org/'
- run: npm ci
- run: npm test
- run: npm version patch # 自动升级版本号
- run: npm publish # 发布至npm仓库
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} # 从GitHub Secrets获取npm token
通过CI/CD工具实现代码变更后的自动构建和测试,确保迭代质量:
# .github/workflows/ci.yml
name: CI Pipeline
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: '18'
- run: npm ci
- run: npm run lint
- run: npm test
将迭代后的代码部署至生产环境,确保服务稳定:
pm2管理Node.js应用,支持重启、日志管理、负载均衡:npm install -g pm2 # 全局安装pm2
pm2 start app.js # 启动应用(app.js为入口文件)
pm2 save # 保存当前进程列表
pm2 startup # 设置开机自启
# Nginx配置示例(/etc/nginx/sites-available/default)
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:3000; # 转发至pm2
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
pm2 reload命令实现无中断重启,避免影响用户访问:pm2 reload app # 重启app进程(优雅加载)
定期更新依赖包,修复安全漏洞并提升性能:
npm outdated查看可更新的依赖包。npm update # 更新所有符合package.json版本范围的依赖
npm update lodash # 更新指定依赖(如lodash)
npm install -g npm@latest # 更新npm至最新版本
nvm install node --latest-npm # 通过nvm更新Node.js并同步最新npm
通过以上流程,可在Debian系统上实现JS项目的规范化版本迭代,确保代码质量、依赖一致性和部署稳定性。