node-sass在内网环境下的安装

由于在内网开发,在将源代码迁移到内网中,使用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在内网环境下的安装_第1张图片
这样就可以完美解决在不同系统下导致的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

你可能感兴趣的:(node-sass)