本文介绍: nodesass 安装失败精确解决办法。很多老项目还在nodesass,新拿到项目一步当然是要 npm install, 这时候nodesass 经常安装不成功,因为默认npm会到 github下载nodesass

nodesass属于被淘汰的工具,然而很多老项目还在继续使用它,新人拿到项目一步当然是要 npm install, 这时候nodesass 经常安装不成功,因为默认npm会到 github下载nodesass比如直接安装时

Cannot download "https://github.com/sass/node-sass/releases/download/v4.14.1/darwin-x64-83_binding.node"

那么国内没有nodesass的缓存呢?当然有,而且就是我们常用淘宝镜像就有。新版淘宝CDN域名npmmirror.com,后面我都会使用这个域名

注意,这里不是 —registry, 下载nodesass 静态文件是单独的域名,跟是否配置registry淘宝镜像无关。

npm config set sass_binary_site="https://cdn.npmmirror.com/binaries/node-sass

设置之后,重新运行 npm inode-sass 就会从这个地址下载。如果你的网络状况比较好,那么现在应该已经成功了。

网上有其他人使用配置, sass_binary_site大写, 但是我测试成功的是小写,可能npm版本不同导致。

我的环境

npm --version
6.14.15
node --version
v14.18.3

然而我的事情并没有完。我运行 npm i时候,它居然无法下载 darwinx64-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 , 这里指向一个具体的目录,那么我把 darwinx64-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/darwinx64-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进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注