Windows 使用 node-gyp

Posted 柏衡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 使用 node-gyp相关的知识,希望对你有一定的参考价值。

  • node 编译 c++ 扩展的时候使用的编译工具
  • depend on: python 2.7
开发一个 windows 小工具,工作 pc 是 ubuntu, 为了省事,选择用 electron,打算开发好了直接到 windows 上打包(ubuntu 上打 win 包还在研究中...)
因为 node-gyp 编译问题扯了一天半还没解决, 猜测 npm 安装 windows-build-tools 可能需要参数辅助或其它支持...
node-gyp 编译工具如何正确安装使用,在此作个记录

分 2 种情况:

Not exist Node

  1. 下载 .msi 安装包 https://nodejs.org
  2. 安装时(最好管理员运行)勾选:Automatically install the necessary tools ...
  3. 等待 安装程序 和 PowerShell 都执行完成

Already exist Node

包括 nvm 管理的 node

refer to:

  • https://github.com/nodejs/nod...
  • https://github.com/Microsoft/...
  • https://github.com/nodejs/nod...
  • https://nodejs.org/api/addons...
  • https://www.jianshu.com/p/af7...
  • https://blog.csdn.net/qq_3382...

setp

  1. install Chocolatey (powershell or cmd)

    // powershell (admin)
    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString(\'https://chocolatey.org/install.ps1\'))
    
    // cmd (admin)
    @"%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString(\'https://chocolatey.org/install.ps1\'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\\chocolatey\\bin"
  2. install windows-build-tools by Chocolatey

    // install: Visual C++ Build Tools
    // powershell/cmd (admin)
    choco install visualcpp-build-tools
    
    -    options: A
  3. 如果未安装 python

    • choco install python2
  4. npm i -g node-gyp
  5. npm config set msvs_version 2017 -g
  6. node-gyp install

    • powershell 需要修改执行策略, 执行:set-ExecutionPolicy RemoteSigned
  7. node-gyp configure --msvs_version=2017

    • 可忽略如下错误
    gyp: binding.gyp not found (cwd: C:\\Windows\\system32) while trying to load binding.gyp
    gyp ERR! stack Error: `gyp` failed with exit code: 1
  8. [可选]resolve error: if not defined npm_config_node_gyp

    windows 中 2 选 1 即可
    • npm config set node_gyp "C:\\Users\\usr\\AppData\\Roaming\\nvm\\v12.14.1\\node_modules\\node-gyp\\bin\\node-gyp.js" -g
    • set npm_config_node_gyp=node C:\\Users\\usr\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js -g
  9. test: npm i -S

    • mcrypt
    • sqlite3
    • node-sass
    • kerberos

以上是关于Windows 使用 node-gyp的主要内容,如果未能解决你的问题,请参考以下文章

如何让 node-gyp 在 Windows 7 平台上工作

windows系统下node-gyp的配置使用

需要 node-gyp 的 npm install 在 Windows 上失败

在 Windows 上安装 Yarn 时挂起的 Fibers/node-gyp

如何解决 Windows 10 上的“node-gyp 重建”问题?

在Windows中使用NPM和node-gyp进行故障排除