通过nvm搭建node开发环境

安装环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 安装nvm
export NVM_SOURCE=https://gitlab.com/mirrorx/nvm.git
curl -o- https://gitlab.com/mirrorx/nvm/-/raw/master/install.sh | bash

# 查看可安装的node版本
nvm ls

# 用nvm安装指定版本的node和npm
nvm install v14.20

# 切换node和npm版本
nvm use v14.20

# 更换npm源
npm config set registry https://registry.npmmirror.com

构建项目

1
2
3
4
5
6
7
8
# 安装项目依赖
npm install

# 构建项目(会生成dist目录,需要部署到nginx等web服务器或者通过pm2运行再通过nginx设置反向代理)
npm run build

# 调试运行
npm run dev

一些工具

视需求情况安装

1
2
3
4
5
apt install nodejs-dev node-gyp libssl1.0-dev
npm install -g pm2
npm install -g express
npm install -g express-generator
npm install -g compression

其中pm2可以直接启动js作为服务器运行

使用pm2

1
2
3
4
5
6
7
8
9
10
11
# 启动项目
pm2 start app.js --name app

# 查看通过pm2启动的项目
pm2 ls

# 停止项目
pm2 stop app

# 将项目从pm2的列表移除
pm2 delete app

其中app.js为服务器启动脚本,参考脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// app.js
const express = require('express');
//创建web服务器
const app = express();
//导入gzip包
const compression = require("compression")
//文件操作
const fs = require('fs');
const path = require('path');
const chalk = require('chalk')

//启用gzip中间件,在托管之前
app.use(compression())
//托管静态资源
app.use(express.static(path.resolve(__dirname, './dist')))

app.get('/', function(req, res) {
const html = fs.readFileSync(path.resolve(__dirname, './dist/index.html'), 'utf-8')
res.send(html)
})

//启动web服务器
app.listen(8082, res => {
console.log(chalk.yellow('Start Service On 8082'));
});