Macbook M1 芯片安装 node-sass 报错解决

Mac m1芯片下运行vue项目,报错

npm ERR! gyp ERR! command"/opt/homebrew/Cellar/nvm/0.39.1_1/versions/node/v16.14.2/bin/node""/Library/project/study/vue/every_day_pages_saber/node_modules/node-sass/node_modules/.bin/node-gyp""rebuild"
npm ERR! gyp ERR! cwd /Library/project/study/vue/every_day_pages_saber/node_modules/node-sass
npm ERR! gyp ERR! node -v v16.14.2
npm ERR! gyp ERR! node-gyp -v v7.1.2
npm ERR! gyp ERR! not ok

Error: Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64)或者

npm ERR! gyp ERR! command"/opt/homebrew/Cellar/nvm/0.39.1_1/versions/node/v16.14.2/bin/node""/Library/project/study/vue/every_day_pages_saber/node_modules/node-sass/node_modules/.bin/node-gyp""rebuild"
npm ERR! gyp ERR! cwd /Library/project/study/vue/every_day_pages_saber/node_modules/node-sass
npm ERR! gyp ERR! node -v v16.14.2
npm ERR! gyp ERR! node-gyp -v v7.1.2
npm ERR! gyp ERR! not ok

这个问题是当前node版本太高,而适配的node-sass并不支持arm架构导致,那么解决思路有两个:

1.降低node版本(推荐)2.寻找适配了arm架构的node-sass对应的node版本

一、用sass替代node-sass

首先向大家介绍一种最简单的方式,在介绍前要知道node-sass是做什么的,简单来说就是编译sass语法的一种工具,让sass语法变成浏览器能够识别的CSS语法

注意这里的sass语法并不是我们架构中常说的sass多租户架构。而是声明样式的一种前端语法。

node-sass可以用sass来代替,实现也很简单:

1、就是直接将package.json文件中的”node-sass”: “^6.0.1″删除(这里的版本号可能会不一致,找到node-sass关键字即可)

2、然后在项目根目录下执行执行如下指令,用sass来替换

npm uninstall node sass
npm install sass
npm install

3、然后就可以运行项目了

npm run serve

同时也可以在package.json中发现,已经多了一个sass的依赖

“sass”: “^1.50.1”

二、使用nvm降低node版本(推荐)

1、我们直接采用homebrew来安装nvm,如果没有安装homebrew的先安装homebrew

brew install nvm

2、修改环境变量

vim ~/.zshrc

修改内容,这里是你自己的nvm安装路径,使用homebrew安装的都在如下路径下,只是版本不一致

export NVM_DIR="/opt/homebrew/Cellar/nvm/0.39.1_1"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"

3、重新加载环境变量

source ~/.zshrc

4、用NVM对node进行版本管理,降版本

在“终端”简介中,勾选“使用Rosetta”打开。

我当前的node版本是node16,将其降低至node14,安装node14

nvm i v14

4、查看node版本,看是否安装成功了

node -v

5、如果还是显示之前的版本,在项目下执行版本切换指令

同时将v14设置为默认版本,这样设置后每次打开终端都是默认的v14版本(很重要,如果不设置,默认用v16项目启动还是会报错)

nvm use v14
nvm alias default v14.7.0

6、重新安装依赖

npm install

7、启动项目

npm run serve
滚动至顶部