【Js】M1芯片 安装node-sass报错


报错提示
Error: Can't find Python executable "python", you can set the PYTHON env var
index.js:1 Uncaught Error: Module build failed: Error: ENOENT: no such file

原因:node与node-sass版本不匹配。代码的node-sass是v14版本(需要node15以下的版本),我的node 是 v15(M1仅兼容node v15.3.0 以上,因为低版本的 node 并不是基于 arm64 架构的)。

解决方案:安装 v14 及以下的老版本 Node
在终端输入:

arch -x86_64 zsh

通过这个命令可以让 shell 运行在Rosetta2下。
之后可以通过如下指令安装低版本 Node:

 nvm install v12

在此之后,可以不用在 Rosetta2 中就可以使用安装的可执行文件,可以将 Node v15与其他节点版本互换使用。

主要是通过arch -x86_64 zsh 让shell运行在Rosetta2下 安装的npm包会经过Rosetta2转译

其他解决方案:

解决方法一:使用淘宝镜像源
在项目目录下新建 .npmrc文件
设置淘宝仓库地址

registry=https://registry.npm.taobao.org/
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

解决方法二:使用 cnpm
使用 cnpm 安装 node-sass 会默认从淘宝镜像源下载

cnpm install node-sass

解决方法三:下载 .node 到本地
根据自己所需的版本号环境下载

https://github.com/sass/node-sass/releases

安装时,指定变量 sass_binary_path,如:

npm i node-sass --sass_binary_path=/Users/lzwme/Downloads/darwin-x64-48_binding

声明:麋鹿与鲸鱼|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 【Js】M1芯片 安装node-sass报错


Carpe Diem and Do what I like