VUE 部署记录

212 阅读2分钟

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

部署完成

image.png

参看地址: www.cppblog.com/jack-wang/a…