node.js - 在 'OSError: [Errno 2] No such file or directory:' 编译 `node-gyp` 中的模块期间获取 `npm install`

标签 node.js windows cygwin npm-install gyp

npm install 抛出以下错误。我的应用程序依赖的模块之一是 native Node.js 模块 re2 (它依赖于 node-gyp,这意味着它是在安装时编译的):

 File "/cygdrive/c/Users/<Me>/AppData/Roaming/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py", line 2025, in GenerateOutput
    version=msvs_version)
  File "/cygdrive/c/Users/<Me>/AppData/Roaming/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py", line 213, in __init__
    self.Write()
  File "/cygdrive/c/Users/<Me>/AppData/Roaming/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py", line 340, in Write
    f.close()
  File "/cygdrive/c/Users/<Me>/AppData/Roaming/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py", line 396, in close
    os.unlink(self.tmp_path)
OSError: [Errno 2] No such file or directory: '/cygdrive/c/git/ecom/git-repo-inspector/node_modules/@my-app/some-mod/node_modules/re2/C:\\git\\ecom\\git-repo-inspector\\node_modules\\@my-app\\some-mod\\node_modules\\re2\\build/binding.sln.gyp.7gDS9t.tmp'
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (c:\Users\<Me>\AppData\Roaming\npm\node_modules\node-gyp\lib\configure.js:345:16)
gyp ERR! stack     at ChildProcess.emit (events.js:197:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:254:12)
gyp ERR! System Windows_NT 10.0.16299
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "c:\\Users\\<Me>\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\git\ecom\git-repo-inspector\node_modules\@my-app\some-mod\node_modules\re2
gyp ERR! node -v v11.9.0
gyp ERR! node-gyp -v v4.0.0
gyp ERR! not ok
npm verb lifecycle re2@1.8.4~install: unsafe-perm in lifecycle true
npm verb lifecycle re2@1.8.4~install: PATH: C:\Users\<Me>\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\git\ecom\git-repo-inspector\node_modules\@my-app\some-mod\node_modules\re2\node_modules\.bin;C:\git\ecom\git-repo-inspector\node_modules\@my-app\some-mod\node_modules\.bin;C:\git\ecom\git-repo-inspector\node_modules\.bin;C:\cygwin64\usr\local\bin;C:\cygwin64\bin;C:\Program Files (x86)\Python36-3

我的 npm 配置为 Python 2.7:

python = "c:\\Python27\\python.exe"

npm 版本:

$ npm -v
6.9.0

Node gyp 版本:

$ node-gyp --version
v4.0.0

我已经按照 here 安装了 Visual Studio Profession 2017 的 使用 C++ 进行桌面开发 .

更新:我找到了解决的方法,read the details here

最佳答案

阅读详情here我如何解决这个问题,或者至少找到适合我需要的解决方案。

更新:我贡献了a patchnode-gyp 产品来为 Windows 用户(也可能使用 Cygwin)解决此问题

关于node.js - 在 'OSError: [Errno 2] No such file or directory:' 编译 `node-gyp` 中的模块期间获取 `npm install`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56640780/

相关文章:

javascript - Discord.js - 如何在一台服务器中切换命令?

node.js - 无法执行child_process.exec ("node child.js")

javascript - 用于查找除以 172 开头的 IP 地址之外的所有 IP 地址的正则表达式

c# - 在没有 SolidColorBrush 的情况下从 Color 获取 Brush

linux - 如何使用 linux find 命令清理所有 Maven 项目?

使用 -O2 与 -O1 时,Cygwin64 gcc C/汇编程序崩溃

javascript - Child_added 订阅似乎下载了整个数据集

windows - sysopen 权限被拒绝

windows - 如何从 powershell 脚本中的 cmdlet 捕获退出代码

c++ - 在 Cygwin 上编译 Boost, header 在 32/64 位上不一致