1. 安装Node.js与npm
在Debian上管理JS项目前,需先安装Node.js(运行环境)和npm(包管理器)。推荐通过NodeSource仓库安装最新稳定版(避免系统自带版本过旧):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - # 替换为所需版本(如16.x、18.x)
sudo apt install -y nodejs
验证安装:node -v(查看Node.js版本)、npm -v(查看npm版本)。
若需管理多版本Node.js,可使用NVM(Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install 18 # 安装指定版本
nvm use 18 # 切换版本
2. 依赖管理(npm/Yarn)
JS项目的依赖(如Express、React)通过npm或Yarn管理。首先在项目根目录初始化package.json(记录依赖与脚本):
npm init -y # 快速生成默认配置(含name、version、scripts等)
npm install express --save(自动添加到dependencies);npm install eslint --save-dev(自动添加到devDependencies)。yarn add express(生产)、yarn add -D eslint(开发)。npm update(根据package.json版本范围更新所有依赖)或npm update express(更新指定依赖);Yarn用yarn upgrade。npm uninstall express --save(从dependencies移除);Yarn用yarn remove express。npm ci(而非npm install)可根据package-lock.json精确安装依赖,确保团队环境一致。3. 项目部署流程
scp(命令行)或Git将本地项目推送至Debian服务器(如GitHub仓库)。npm install(或yarn install),自动下载package.json中定义的依赖。sudo npm install pm2 -g # 全局安装PM2
pm2 start app.js --name "my-js-app" # 启动应用(app.js为入口文件)
pm2 save # 保存当前进程列表
pm2 startup # 设置开机自启动(需执行生成的命令)
sudo apt install nginx # 安装Nginx
sudo nano /etc/nginx/sites-available/default # 编辑配置文件
添加以下内容(替换yourdomain.com为域名/IP,3000为Node.js端口):server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:3000;
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;
}
}
保存后重启Nginx:sudo systemctl reload nginx。4. 环境与安全配置
.env文件(不要提交至Git),使用dotenv包加载:npm install dotenv --save # 安装dotenv
在项目入口文件(如app.js)顶部添加:require('dotenv').config()。sudo apt install certbot python3-certbot-nginx # 安装Certbot(Nginx版)
sudo certbot --nginx -d yourdomain.com # 自动配置证书
证书有效期为90天,后续会自动续期。5. 版本控制与协作
git init,创建.gitignore文件排除node_modules/(依赖目录)、.env(敏感信息)等:node_modules/
.env
dist/ # 构建产物(若有)
git add . # 添加所有文件
git commit -m "Initial commit" # 提交到本地仓库
git remote add origin <repository-url> # 关联远程仓库(如GitHub)
git push -u origin main # 推送至远程分支
main分支时自动运行测试、部署至服务器)。6. 日志与维护
pm2 logs(显示所有应用日志)或pm2 logs my-js-app(显示指定应用日志)。pm2 monit。/usr/src/app)与数据库,及时更新Node.js版本(通过NVM或NodeSource)及依赖(npm update),修复安全漏洞。