知识积累--linux--下安装nodejs--运行window下编译过的项目
前景提要:
在本地windows环境下,做了一个项目,需要使用nodeJs环境,于是乎本地安装了下nodeJs也配置了环境变量,项目运行着也没有问题,现要将项目部署到linux的线上环境,在安装nodeJS和运行npm run build,npm run dev的时候是困难重重,以下是我的安装步骤以及克服重重困难的记录,仅供参考
安装开始:
阶段1-----------------------------------------------------------------------------------
nodeJs:采取二进制包安装,我是直接在网上搜的我想要的版本
我的版本是:node-v8.11.2-linux-x64.tar.xz
步骤:
cd /app/nodejs
tar -xvf node-v8.11.2-linux-x64.tar.xz
进入解压后的包node-v8.11.2-linux-x64 ,确认一下bin目录是否有node 和npm文件,如果有执行软连接,如果没有重新下载执行上边步骤;
建立软连接,变为全局,如下:
ln -s /app/nodejs/node-v8.11.2-linux-x64/bin/npm /usr/local/bin/
ln -s /app/nodejs/node-v8.11.2-linux-x64/bin/node /usr/local/bin/
最后一步检验nodejs是否已变为全局:
node -v
npm -v
如下图:
好的,安装就大功告成啦!
阶段2:--------上传项目-------------------------------------------------------------------------
位置:/data/dp/client 项目名就是client,里面内容目录如下图:
阶段3:--------运行项目------------------------------------------------------------------
npm run build
第一个大坑出现:截图没有了,大概的意思是我项目编译的时候用的是linux64的但是编译项目发现的是windows64的,于是乎,我就把client项目里面的node_models给删除掉了。再执行上面的命令,不出先这个错误,但是又来个一个大坑
第二个大坑出现,如图:
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/Users/zhang/Documents/data_insight_yinzhou/data_insight_yinzhou/node_modules/node-sass/build'
这好像说的是node_sass这个安装权限不足,我一开始以为是这个目录下没有写和执行的权限,但是直接在client项目里 直接给了chmod -R 775 ./* 还是不行,此时就说明不是这个权限的问题,就百度了下,最后用到了这个命令:
npm install node-inspector --unsafe-perm=true --allow-root (我当前的用户是root)
再次执行npm run build 就成功了,且client/node_models/node-sass也有了,
执行: npm run dev 命令
成功!
其实遇到的大坑有很多,还少说了一个大坑,在执行npm run build的时候,还有这个错误:
build的时候直接被killed掉了,好尴尬,这error给的太突然,下面说明给的也很是模糊,有价值的信息很少,怎么办,直接百度搜“linux npm run build killed”竟然第一个帖子就是说这个的好幸运,前几天其实也都有只不过是没有这样的查到解决办法,上面说的是需要给linux分配下swap 区,于是我就做了如下操作:
1、输入 free -m 查看 Swap 分区情况
2、这里是Swap分区为0,表示没有分配,接下来开始执行
cd /opt //我的目录是opt
mkdir swap //创建文件夹
cd swap //切换到文件夹下
3、使用dd命令新建分区文件,我这里分配了一个4G
dd if=/dev/zero of=swapfile bs=1M count=4096
4、将swapfile增加为swap分区,并开启
mkswap swapfile
swapon swapfile
5、使用free命令查看你的swap分区是否已经变大
这个swap分区搞好之后,再执行npm run build就不再被直接被杀掉了 killed了!!
总结:以上是个人安装和部署的一些小记载,怕日后自己还需要再用到,就动了下手指简单的记录下,如果看到本博客的你也遇到相同的问题,希望可以帮你分担点懊恼,不至于有砸电脑的冲动!