node-sass在内网环境下的安装
由于在内网开发,在将源代码迁移到内网中,使用Jenkins构建时出现node-sass版本问题首先先解决vue-cli-service: Permission denied权限问题chmod -R 755 ./*在网上查了各种解决方案,原理与方法都大同小异。1、查找当前系统下node-sass所需的镜像文件版本// 查看当前系统使用版本node -p "[process.platform,proc
由于在内网开发,在将源代码迁移到内网中,使用Jenkins构建时出现node-sass版本问题
首先先解决vue-cli-service: Permission denied权限问题
chmod -R 755 ./*
在网上查了各种解决方案,原理与方法都大同小异。
1、查找当前系统下node-sass所需的镜像文件版本
// 查看当前系统使用版本
node -p "[process.platform,process.arch,process.versions.modules].join('-')"
2、根据所需使用版本,去node-sass的GitHub官网下载对应版本,并存放到某一目录下
https://github.com/sass/node-sass/releases
( 下载地址,根据自己的版本下载 我是 win32-x64-67_binding.node )
3、修改node-sass的环境变量,
set SASS_BINARY_PATH=D:/nodejs/.nodes/win32-x64-67_binding.node (根据自己的地址和文件名修改)
4、安装node-sass模块
npm i node-sass -D --verbose
本人上述方案在多次尝试后,以失败告终。
经研究发现node-sass根据系统读取各自版本的node-sass编译文件
例如:在windows系统下,执行npm install,会下载win32-x64-67_binding.node文件并执行该文件进行编译。但是将代码迁移到linux下时,运行编译命令会提示版本异常,这是因为node-modules中没有linux到node-sass包,所以需要再次执行npm install去下载当前系统到node-sass包。
上述大致清楚原因后,解决方案就有思路了,直接简单粗暴,我们将三个系统的node-sass版本都下载下来不就不受系统影响来么;
1、查找当前系统下node-sass所需的镜像文件版本
// 查看当前系统使用版本
node -p "[process.platform,process.arch,process.versions.modules].join('-')"
2、根据所需使用版本,去node-sass的GitHub官网下载对应版本
这里我将windows、macOs、linux的包都下载下来
3、进入到项目node_modules/node-sass/vendor目录,并根据各系统创建目录并将node文件放置到目录下
这样就可以完美解决在不同系统下导致的node-sass版本异常不能打包问题;
参考博客:
https://www.jianshu.com/p/947d050f98f2
https://blog.csdn.net/qk61508/article/details/83189742
https://www.jianshu.com/p/145cc862ceec
https://www.cnblogs.com/pengfei25/articles/11136263.html
https://blog.csdn.net/evermet/article/details/103735680
https://blog.csdn.net/ojr_up/article/details/78517559
更多推荐
所有评论(0)