macOS 시스템의 M1 칩에 node-sass를 설치할 때 보고된 오류에 대한 해결 방법 정보

머리말

최근 macOS 시스템이 변경되었으며 프로젝트를 가져온 후 설치 종속성에서 오류를 보고했습니다.

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

M1 칩에 node-sass를 설치하는 방법에 대한 이 기사를 참조한 후, 그 이유는 node와 node-sass의 버전이 일치하지 않기 때문이라는 것을 알게 되었습니다 . 코드의 node-sass는 버전 v4.14.1(node15 이하 버전 필요)이고 내 노드는 v14입니다(그러나 M1 칩은 노드 v15.3.0 이상과만 호환됩니다. 왜냐하면 더 낮은 버전의 node는 기반이 아니기 때문입니다. arm64 아키텍처에서).

해결책:

해결 방법 1: 쉘을 Rosetta2에서 Arch -x86_64 zsh를 통해 실행하면 설치된 npm 패키지가 Rosetta2에 의해 변환됩니다.

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

安装低版本 Node
nvm install v12

그런 다음 cnpm을 사용하여 [email protected] 버전을 별도로 설치하면 이 때 종속 다운로드 오류가 해결되었습니다.

프로젝트 시작 시 오류가 보고되는 경우:

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

이 오류는 Node Sass가 Node.js 버전 14.X가 설치된 OS X 환경의 아키텍처(arm64)를 지원하지 않음을 의미합니다. 더 낮은 버전의 Node.js(12.x)로 전환하면 위의 오류 보고 문제를 해결할 수도 있습니다.

해결 방법 2: GCC 또는 clang 해석기로 Node Sass 컴파일

정보를 참조한 후 위의 솔루션 외에도 다른 아키텍처를 통해 node-sass를 컴파일하여 비호환성 문제를 해결할 수도 있습니다.
하지만 이 솔루션은 추가 통역사 도구를 확장해야 하고 상대적으로 사용하기 번거로워서 권장하지 않습니다; 여기서는 사용법에 대해 간략하게 소개만 하겠습니다(ps: 이 솔루션은 검증하지 않았습니다).

이 솔루션에는 gcc, llvm 및 clang 컴파일러에 대한 지식이 포함됩니다. 자세한 내용은 세 가지 주요 컴파일러에 대한 자세한 설명: gcc, llvm 및 clang을 참조하세요.

특정 작업:
다양한 아키텍처(예: x86-64)를 사용하려면 터미널에서 다음 명령을 사용하세요.

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

이 두 명령어는 프로그램을 컴파일하는 데 사용됩니다. 특히 그들은 컴파일러가 x86-64 아키텍처 프로세서에서 실행되도록 Sandy Bridge 아키텍처에서 제공하는 x86-64 명령어 세트를 사용하여 프로그램을 컴파일하도록 지정했습니다.

위의 명령은 "yourfile.c" 파일을 컴파일하고 이름을 "yourfile"로 지정합니다. -march 매개변수는 기계 아키텍처를 지정하는 반면, -mcpu 매개변수는 아키텍처의 실제 프로세서 명령어 세트(이 경우 Shaheqiao)를 지정합니다.

위에서 언급한 "llvm-gcc" 또는 "clang" 대신 "gcc" 또는 "clang"과 같은 대체 문을 사용하여 표준 GCC 또는 Clang 컴파일러로 프로그램을 컴파일할 수도 있습니다.

다른 확장

Homebrew 명령줄을 통해 GCC 컴파일러 설치

설치 과정은 다음과 같습니다.

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

GCC를 사용하려면 터미널에 gcc –v를 입력하여 GCC 버전 정보를 얻거나 gcc myfile.c –o myfile을 입력하여 myfile.c 파일을 컴파일하고 myfile 파일을 생성할 수 있습니다.

GCC 컴파일러로 Node Sass를 컴파일하는 명령 예시:
gcc ./node-sass.c -o node-sass

관련 의존성 패키지들이 동기적으로 다운로드되기 때문에 gcc를 다운로드하는데 시간이 오래 걸릴 수 있는데, 결국 다운로드에 실패했는데, 오류는 다음과 같습니다.

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

그런 다음 계속하려면 추출 소스 주소를 수정하세요.
git -C "$(brew --repo)" Remote set-url Origin [소스 주소]

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

오랫동안 기다린 후에도 gcc 및 llvm 컴파일러는 여전히 다운로드에 실패했습니다. . .

추천

출처blog.csdn.net/var_deng/article/details/128916127