Acerca de la solución al error reportado al instalar node-sass en el chip M1 del sistema macOS

prefacio

Cambié recientemente el sistema macOS y, después de retirar el proyecto, la dependencia de instalación informó un error:

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

Después de consultar este artículo sobre la instalación de node-sass en el chip M1 , descubrí que el motivo es: la versión de node y node-sass no coinciden . El nodo-sass del código es la versión v4.14.1 (requiere una versión inferior al nodo 15) y mi nodo es la v14 (pero el chip M1 solo es compatible con el nodo v15.3.0 o superior, porque la versión inferior del nodo no se basa en la arquitectura arm64).

solución:

Solución 1: deje que el shell se ejecute en Rosetta2 a través de arch -x86_64 zsh y Rosetta2 traducirá el paquete npm instalado.

#通过命令可以让 shell 运行在Rosetta2下
arch -x86_64 zsh

安装低版本 Node
nvm install v12

Luego use cnpm para instalar la versión [email protected] por separado. En este momento, el error de descarga dependiente se ha resuelto.

Si se informa un error cuando se inicia el proyecto:

Syntax Error: Error: Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64) with Node.js 14.x

Este error significa que Node Sass no es compatible con la arquitectura (arm64) de su entorno, que es OS X con Node.js versión 14.X. Cambiar a una versión inferior de Node.js (12.x) también puede resolver el problema de informe de errores anterior.

Solución 2: compilar Node Sass con GCC o intérprete clang

Después de consultar la información, además de la solución anterior, también puede compilar node-sass a través de otras arquitecturas para resolver el problema de incompatibilidad.
Sin embargo, esta solución necesita expandir herramientas de interpretación adicionales y es relativamente engorrosa de usar, por lo que no se recomienda; aquí solo daré una breve introducción al uso (ps: no he verificado esta solución).

Esta solución implica el conocimiento de los compiladores gcc, llvm y clang. Para obtener más detalles, consulte este artículo: Explicación detallada de los tres compiladores principales: gcc, llvm y clang.

Operación específica:
use los siguientes comandos en la terminal para usar diferentes arquitecturas (como x86-64):

llvm-gcc -march=x86-64 -mcpu=sandybridge yourfile.c -o yourfile
clang -march=x86-64 -mcpu=sandybridge yourfile.c -o yourfile

Estas dos instrucciones se utilizan para compilar su programa. Específicamente, especifican que el compilador compila su programa para ejecutarlo en procesadores x86-64 utilizando el conjunto de instrucciones x86-64 proporcionado por la arquitectura Sandy Bridge.

El comando anterior compilará el archivo "yourfile.c" y lo llamará "yourfile". El parámetro -march especifica la arquitectura de la máquina, mientras que el parámetro -mcpu especifica el conjunto de instrucciones del procesador real de la arquitectura (en este caso Shaheqiao).

También puede utilizar declaraciones alternativas como "gcc" o "clang" en lugar de "llvm-gcc" o "clang" mencionados anteriormente, para compilar programas con compiladores estándar GCC o Clang.

otras extensiones

Instale el compilador GCC a través de la línea de comando de Homebrew

El proceso de instalación es el siguiente:

  •   在终端中输入brew install gcc,开始安装gcc包。
    
  •   输入brew link --overwrite gcc,完成gcc安装和链接。
    

Para usar GCC, puede ingresar gcc –v en la terminal para obtener información de la versión de GCC, o ingresar gcc myfile.c –o myfile para compilar el archivo myfile.c y generar el archivo myfile.

Un comando de ejemplo para compilar Node Sass con el compilador GCC:
gcc ./node-sass.c -o node-sass

Puede que tarde mucho tiempo en descargar gcc, porque los paquetes dependientes relacionados se descargarán sincrónicamente, finalmente no pude descargar y el error es el siguiente:

Error: gcc: Failed to download resource "gcc"
Download failed: https://ghcr.io/v2/homebrew/core/gcc/blobs/sha256:d0dd262f7d681d5bbcc39bea85d0dd355f2f962060afe4de16432fbe9596bf8c

Luego modifique la dirección de origen de la preparación para continuar,
git -C "$(brew --repo)" origen remoto set-url [dirección de origen]

#默认下载地址
https://mirrors.ustc.edu.cn/brew.git   
#腾讯云下载地址
https://mirrors.cloud.tencent.com/homebrew/brew.git
#华为云下载地址
https://mirrors.huaweicloud.com/homebrew/brew.git

Después de una larga espera, los compiladores gcc y llvm aún no se pudieron descargar. . .

Supongo que te gusta

Origin blog.csdn.net/var_deng/article/details/128916127
Recomendado
Clasificación