Debian 环境下 JavaScript 项目管理实践
一 环境准备与版本管理
sudo apt update && sudo apt install -y nodejs npmnode -v、npm -vcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bashsource ~/.bashrcnvm install 18、nvm use 18、nvm ls-remotecurl -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.list,sudo apt update && sudo apt install -y yarnyarn --version二 项目初始化与依赖管理
npm init -y 生成 package.json"scripts": { "start": "node index.js", "dev": "node index.js", "build": "webpack" }npm install express 或 yarn add expressnpm install -D webpack webpack-cli babel-loader @babel/core @babel/preset-env 或 yarn add -D ...npm update <pkg> / npm uninstall <pkg>;yarn upgrade <pkg> / yarn remove <pkg>npm audit(或 yarn audit)定期检查依赖漏洞并修复三 模块化与构建流程
export function greet(name) { return \Hello, ${name}!`; }`import { greet } from '../modules/moduleA'{ "presets": ["@babel/preset-env"] }entry: './src/index.js'output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }module.rules 配置 babel-loader,排除 node_modulesoptimization.splitChunks { chunks: 'all' }eslint --init、eslint yourfile.jsprettier --write yourfile.js四 质量保障与协作规范
import { greet } from './index'test('greet returns correct greeting', () => { expect(greet('World')).toBe('Hello, World!'); })src/、dist/、test/、package.json、webpack.config.js、.eslintrc.js、.prettierrc、.gitignorenode_modules/ 与构建产物加入 .gitignore五 运行与部署
sudo npm install -g pm2pm2 start app.js --name my-apppm2 status、pm2 logs、pm2 startup、pm2 save/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=productionsudo systemctl daemon-reload && sudo systemctl start node && sudo systemctl enable nodeFROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . CMD ["node","server.js"]proxy_set_header 等头部转发