因为公司电脑都由管理员管控,使用自己的账号是无法执行一些需要管理员权限的命令,所以在刚到公司时,使用管理员账号安装了node,配置了node缓存目录node_cache、node_global,以及设置了相关的环境变量,以及修改npm镜像源为淘宝镜像源,最初项目安装都没问题,但是随着公司mcafee安全组件升级,淘宝镜像源被禁用,执行npm install就会报错。
使用了各种方式都没有解决此问题,后来就觉得是mcakee的阻拦导致被禁止访问,但是通过包的网址直接浏览器访问是未被禁用的,所以这就成为了一个无头悬案。无奈每次安装依赖,都要找到对应的依赖包下载到本地电脑,然后作为静态资源放置到本地引入,但是这种方式会带来很多局限性,很多插件也没有明确的使用说明,在实际操作中总会遇到各种各样的问题。
时隔几月,这几天开发任务较少,突然想到此问题,便又在网上搜索相关解决方案,看到一篇帖子说这个可能是当前用户无node_cache文件的缓存权限导致的,这一观点是在之前未被想到的,看着相关报错也符合此推理,于是便联系it给当前用户开通了管理员权限,重新给node_cache和node_global分配了权限;
权限分配完,发现确实可以下载,但是由于无法使用淘宝镜像,所以修改npm镜像为https://registry.npmmirror.com/
但是由于项目中使用到node-sass,且本地的node环境为14.7.1,发现之前使用的node-sass版本域本地node环境不符,升级node-sass版本,下载仍然失败;经查看相关blog发现可以通过修改node-sass为本地,提前去github上下载对应的二进制文件win32-x64-83_binding.node,可以解决下载问题:
具体配置方法如下:
在这里提供通过 node-sass 官方提供的 .node 二进制文件安装和 node 环境相匹配的 node-sass 的方法。
1、本地控制台输入 node -p "[process.platform, process.arch, process.versions.modules].join('-')"查看对应的 node-sass 二进制文件版本。
2、前往 github 上下载对应的二进制文件,找到并下载对应版本的二进制文件
3、项目路径下,控制台执行 npm i node-sass --sass_binary_path=BINDING_NODE_PATH 进行 node-sass 安装,其中 BINDING_NODE_PATH 为下载的二进制文件 win32-x64-83_binding.node 的路径。
4、安装完成后,进入项目 node-module 路径,找到刚刚安装好的 node-sass,查看路径下的 vender 文件夹;记住,vendor 文件夹下的内容必须和二进制文件名匹配,如上图所示,如果不匹配,就修改文件夹名,然后把下载的二进制文件重命名为 binding.node 放进去就可以了,如果没有 vendor 文件夹,就自己创建一个。
参考blog:
(55条消息) npm install安装失败,报错记录之The operation was rejected by your operating system._桔梗花开❀的博客-CSDN博客
(55条消息) 解决npm下载失败,下载缓慢_小花不秃头的博客-CSDN博客_npm下载失败
sass/node-sass: Node.js bindings to libsass
(55条消息) 使用vscode开发配置uni-app(小程序)_yasinawolaopo的博客-CSDN博客_vscode配置小程序开发