Github Actions macos-12环境下如何强制安装ARM64架构Node.js?
强制在GitHub Actions的macOS-12环境安装ARM64版本Node.js
要在macos-12 runner上安装ARM64架构的Node.js,并配合node-gyp编译对应架构的原生模块,你需要做以下关键修改:
1. 指定Node.js的ARM64架构
在actions/setup-node步骤中添加architecture: arm64参数,明确要求安装ARM版本的Node.js:
- uses: actions/setup-node@v3 with: node-version: '18' architecture: arm64 # 强制安装ARM64版本
2. 配置编译环境适配ARM64
由于macos-12 runner默认是x86_64架构,需通过环境变量告知npm和node-gyp以ARM64标准编译模块。在setup-node步骤后添加环境配置:
- name: Set ARM64 build flags run: | echo "npm_config_arch=arm64" >> $GITHUB_ENV echo "npm_config_target_arch=arm64" >> $GITHUB_ENV
修改后的完整Workflow配置
name: test-keyring-go on: [push] jobs: build-native-node-module-on-mac: runs-on: macos-12 environment: dev steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: '18' architecture: arm64 - name: Set ARM64 build flags run: | echo "npm_config_arch=arm64" >> $GITHUB_ENV echo "npm_config_target_arch=arm64" >> $GITHUB_ENV - uses: actions/setup-python@v4 with: python-version: '3.10' - uses: actions/setup-go@v3 with: go-version: '1.20.1' - run: npm install --ignore-scripts - run: npm run build:go:m1 - run: npm run build:node:m1 - run: npm run test - run: npm run vitest
验证安装结果
可添加一个步骤确认Node.js架构是否为ARM64:
- run: node -p "process.arch" # 输出应为arm64
完成上述修改后,node-gyp会基于ARM64架构编译原生模块,与你安装的Node.js版本完全适配。
内容的提问来源于stack exchange,提问作者David Choi
相关产品推荐
相关产品推荐

