1. node 源码安装
# 下载
地址:https://nodejs.org/zh-cn/download/
wget https://nodejs.org/dist/v12.18.0/node-v12.18.0.tar.gz
# 解压
tar -xzvf node-v12.18.0.tar.gz
# 编译 安装
cd node-v12.18.0
./configure --prefix=/usr/local/node
sudo make && sudo make install
# 建立软链接
sudo ln -s /usr/local/node/bin/node /usr/bin/node
sudo ln -s /usr/local/node/bin/npm /usr/bin/npm
sudo ln -s /usr/local/node/bin/npx /usr/bin/npx
# 验证
node -v
v12.18.0
错误1
g++: 编译器内部错误:已杀死(程序 cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[1]: *** [/home/Jane/software/node-v12.18.0/out/Release/obj.target/torque_base/deps/v8/src/torque/torque-parser.o] 错误 4
make[1]: 离开目录“/home/Jane/software/node-v12.18.0/out”
make: *** [node] 错误 2
解决1
# 主要原因大体上是因为内存不足,有点坑 临时使用交换分区来解决吧
sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile
# 在编译完成后,需运行以下代码
sudo swapoff /swapfile
sudo rm /swapfile
错误2
执行 make && make install 报一下错误
../deps/icu-small/source/common/utext.cpp:572:5: 错误:‘max_align_t’不是命名空间‘std’中的一个类型名
std::max_align_t extension;
^
../deps/icu-small/source/common/utext.cpp: 在函数‘UText* utext_setup_67(UText*, int32_t, UErrorCode*)’中:
../deps/icu-small/source/common/utext.cpp:587:73: 错误:‘max_align_t’不是‘std’的成员
spaceRequired = sizeof(ExtendedUText) + extraSpace - sizeof(std::max_align_t);
^
../deps/icu-small/source/common/utext.cpp:587:73: 附注:建议的替代:
In file included from /usr/include/c++/4.8.2/cstddef:42:0,
from ../deps/icu-small/source/common/utext.cpp:19:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/stddef.h:425:3: 附注: ‘max_align_t’
} max_align_t;
^
../deps/icu-small/source/common/utext.cpp:598:57: 错误:‘struct ExtendedUText’没有名为‘extension’的成员
ut->pExtra = &((ExtendedUText *)ut)->extension;
^
make[1]: *** [/home/Jane/software/node-v12.18.0/out/Release/obj.target/icuucx/deps/icu-small/source/common/utext.o] 错误 1
rm b3feb965c6fc8284218a7eac2630e747caaf0b47.intermediate
make[1]: 离开目录“/home/Jane/software/node-v12.18.0/out”
make: *** [node] 错误 2
解决2
gcc版本过低,安装新版本gcc,比如8.x\
1、安装centos-release-scl\
sudo yum install centos-release-scl\
2、安装devtoolset\
sudo yum install devtoolset-8-gcc*\
(如果想安装7.*版本的,就改成devtoolset-7-gcc*)\
3、激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,\
需要的时候用下面以下命令切换到对应的版本\
scl enable devtoolset-8 bash
2. 安装 pm2 管理软件
npm install pm2 -g
# 创建软连接
sudo ln -s /usr/local/node/bin/pm2 /usr/local/bin/pm2
# pm2 常用命令
启动:`pm2 start app_name|app_id`
停止:`pm2 stop app_name|app_id`
删除:`pm2 delete app_name|app_id`
重启:`pm2 restart app_name|app_id`
停止所有:`pm2 stop all`
查看所有的进程:`pm2 list`
查看所有的进程状态:`pm2 status`
查看某一个进程的信息:`pm2 describe app_name|app_id`
错误1
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, access '/usr/local/node/lib/node_modules'
npm ERR! [Error: EACCES: permission denied, access '/usr/local/node/lib/node_modules'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/node/lib/node_modules'
npm ERR! }
解决1
# 权限问题,加上 sudo 即可
sudo npm install pm2 -g
3. 部署静态 vue 项目
3.1 安装 vue-cli-service
# 更新 npm
npm cache clean --force
npm install -g npm
# 安装 vue-cli-service
npm install @vue/cli-service -g
# 生成静态文件
npm install
npm run build
3.2 配置nginx
server {
listen 8084;
location / {
root /***/***/www/aos_web/aos_web/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
proxy_buffer_size 64k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
}
# 重启nginx
sudo service nginx restart
部署完成