node–sass 是属于被淘汰的工具,然而很多老项目还在继续使用它,新人拿到项目第一步当然是要 npm install, 这时候node–sass 经常安装不成功,因为默认npm会到 github下载node–sass ,比如直接安装时
Cannot download "https://github.com/sass/node-sass/releases/download/v4.14.1/darwin-x64-83_binding.node"
那么国内有没有node–sass的缓存呢?当然有,而且就是我们常用的淘宝镜像就有。新版淘宝CDN域名是 npmmirror.com,后面我都会使用这个域名
注意,这里不是 —registry, 下载node–sass 静态文件是单独的域名,跟是否配置 —registry 为淘宝镜像无关。
npm config set sass_binary_site="https://cdn.npmmirror.com/binaries/node-sass
设置之后,重新运行 npm i , node-sass 就会从这个地址下载。如果你的网络状况比较好,那么现在应该已经成功了。
网上有其他人使用的配置, sass_binary_site 是大写, 但是我测试成功的是小写,可能是npm版本不同导致。
我的环境:
npm --version
6.14.15
node --version
v14.18.3
然而我的事情并没有完。我运行 npm i 的时候,它居然无法下载 darwin–x64-83_binding.node !
幸运的是我能通过浏览器下载。下载下来,我需要把这个文件存到本地缓存,npm 本身有缓存机制,具体缓存在哪个目录,需要查询。命令行输入:
cnpm config ls -l |grep cache
从命令行输出结果,就能找到当前npm 使用的 cache 目录,比如我这里是 ~/.npm/.cache/cnpm
也可以用其他方法获知 cnpm 的缓存路径,比如我的 cnpm 其实是一个 bash 别名:
which cnpm
cnpm: aliased to /usr/local/bin/npm --registry=https://registry.npmmirror.com --cache=~/.npm/.cache/cnpm --disturl=https://npmmirror.com/dist --userconfig=~/.cnpmrc
其中的 —cache=path , 这里指向一个具体的目录,那么我把 darwin–x64-83_binding.node 拷贝到缓存目录中,拷贝后的结果:
pwd
~/.npm/.cache/cnpm/node-sass/4.14.1
ls
darwin-x64-83_binding.node
文件大小大约 3.2 MB
再次执行 cnpm i
命令行输出中,有如下提示:
Cached binary found at **/.npm/.cache/cnpm/node-sass/4.12.0/darwin–x64-83_binding.node
以上代码中, ~ 表示用户主目录。其实操作系统显示的是 /Users/用户名/, 这里我用 ~ 隐去。
当然可行,不行的话,我把它记录下来干嘛?
以上操作都在 mac 电脑中执行,在 linux, windows 电脑中,本质是一样的,只是对应的 .node 文件名不一样。
如果你的网络无法下载 darwin-x64-83_binding.node 怎么办呢?那就从其他渠道获取吧,比如从其他人已经安装好的环境里面,进入 node_modules/node-sass/vendor 目录拷贝到这个文件,然后根据规则,重命名之后放到 cache 目录内。
原文地址:https://blog.csdn.net/wanzcong/article/details/125393936
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_39608.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!