在 Debian 上集成 JS 工具的可执行方案
一 基础环境搭建
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get update
sudo apt-get install -y nodejs
node -v
npm -v
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts
npm config set registry https://registry.npmmirror.com
以上步骤完成后,即可在系统全局使用 node 与 npm 命令。
二 集成与运行 JS 工具
sudo npm install -g yarn pnpm nodemon eslint prettier
npm init -y
npm install lodash axios express
npm install --save-dev jest webpack webpack-cli
{
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"build": "webpack --mode production",
"test": "jest"
}
}
npm start
npm run dev
npm run build
npm test
上述做法覆盖全局与本地工具集成、脚本化运行与常见构建测试流程。
三 前端资源与浏览器集成
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
<script>
console.log(_.chunk([1,2,3,4], 2));
</script>
npm install -D browserify
browserify src/main.js -o dist/bundle.js
<script src="dist/bundle.js"></script>
以上方式适用于纯前端资源集成与依赖打包。
四 自动化与运维集成
chmod +x /path/to/script.js
crontab -e
# 每天 01:00 执行
0 1 * * * /usr/bin/node /path/to/script.js >> /var/log/js-automation.log 2>&1
sudo tee /etc/systemd/system/my-js.service >/dev/null <<'EOF'
[Unit]
Description=My JavaScript Automation
After=network.target
[Service]
ExecStart=/usr/bin/node /path/to/script.js
Restart=always
User=your_username
WorkingDirectory=/path/to
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now my-js.service
sudo npm install -g pm2
pm2 start npm --name "my-app" -- start
pm2 save
pm2 startup
以上方案覆盖定时执行、系统服务托管与进程守护的常见运维需求。
五 实用集成示例
npm install puppeteer
示例脚本(保存为 puppeteer_demo.js):const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'example.png' });
const content = await page.content();
console.log(content.slice(0, 200));
await browser.close();
})();
运行:node puppeteer_demo.js
npm install express swagger-ui-express yamljs
示例(保存为 swagger_demo.js):const express = require('express');
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs');
const app = express();
const swaggerDocument = YAML.load('./swagger.yaml');
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
app.get('/', (req, res) => res.send('API is running'));
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`Server on http://localhost:${port}`));
运行并在浏览器访问 http://localhost:3000/api-docs。