追踪器:错误 TRK0005:无法定位:"CL.exe"。该系统找不到指定的文件

TRACKER : error TRK0005: Failed to locate: "CL.exe". The system cannot find the file specified

我正在尝试在 Windows 8 上的 Node.js 项目中执行以下命令:

npm install web3@1.0.0-beta.24

但是我遇到了一个错误,我不知道如何处理。

TRACKER : error TRK0005: Failed to locate: "CL.exe". The system cannot find the file specified. [C:\Projects\myproject\node_modules\scrypt\build\copied_files.vcxproj]

这是完整的输出:

scrypt@6.0.3 preinstall C:\Projects\myproject\node_modules\scrypt node node-scrypt-preinstall.js

scrypt@6.0.3 install C:\Projects\myproject\node_modules\scrypt node-gyp rebuild

C:\Projects\myproject\node_modules\scrypt>如果没有定义 npm_config_node_gyp(节点“C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\....\node_modules\node-gyp\bin\node-g yp.js" rebuild ) else (node "" rebuild ) 警告:缺少输入 文件:C:\Projects\myproject\node_modules\scrypt\build..\scrypt\win\include\config.h 一次构建此解决方案中的项目。启用 并行构建,请添加“/m”开关。 C:\程序文件 (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(366,5): 警告 MSB8003:无法从中找到 WindowsSDKDir 变量 注册表。 TargetFrameworkVersion 或 PlatformToolset 可以设置为 版本号无效。 [C:\Projects\myproject\node_modules\scrypt\build\copied_files.vcxproj] 正在复制 scrypt/win/include/config.h 到 scrypt/scrypt-1.2.0/config.h 的 系统找不到指定的文件。追踪器:错误 TRK0005:失败 定位:"CL.exe"。该系统找不到指定的文件。 [C:\Projects\myproject\node_modules\scrypt\build\copied_files.vcxproj]

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(366,5): 警告 MSB8003:无法从中找到 WindowsSDKDir 变量 注册表。 TargetFrameworkVersion 或 PlatformToolset 可以设置为 版本号无效。 [C:\Projects\myproject\node_modules\scrypt\build\scrypt_wrapper.vcxproj] 跟踪器: 错误 TRK0005:无法定位:"CL.exe"。系统找不到 指定的文件。 [C:\Projects\myproject\node_modules\scrypt\build\scrypt_wrapper.vcxproj]

gyp 错误!构建错误 gyp ERR!堆栈错误:C:\Program Files (x86)\MSBuild.0\bin\msbuild.exe 失败,退出代码:1 gyp ERR! 堆栈在 ChildProcess.onExit(C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:258:23) 吉普错误!堆栈在 emitTwo (events.js:126:13) gyp ERR!堆叠于 ChildProcess.emit (events.js:214:7) 吉普错误!堆叠于 Process.ChildProcess._handle.onexit (internal/child_process.js:198:12) 吉普错误!系统 Windows_NT 6.2.9200 gyp 错误!命令“C:\程序 Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild" gyp 错误! cwd C:\Projects\myproject\node_modules\scrypt gyp 错误!节点 -v v8.9.1 gyp 错误!节点石膏 -v v3.6.2 gyp 错误!不行 npm WARN inbanner@1.6.0 没有存储库字段。

npm 错误!代码 ELIFECYCLE npm ERR!错误号 1 npm 错误!密码@6.0.3 安装:node-gyp rebuild npm 错误!退出状态 1 npm ERR!错误! scrypt@6.0.3 安装脚本失败。错误!这大概是 npm 不是问题。可能有额外的日志输出 以上。

npm 错误!此 运行 的完整日志可在以下位置找到:npm ERR!
C:\Users\user\AppData\Roaming\npm-cache_logs17-11-13T01_31_12_133Z-debug.log

求助!

这个包似乎需要本地编译。您需要为此安装 Visual Studio C++ 构建工具。您可以从下面下载相同的 link

http://landinghub.visualstudio.com/visual-cpp-build-tools

此外,您还需要确保 CL.exe 在您的路径中可用。它会在像 C:\Program Files\Microsoft Visual Studio 10.0\VC\ce\bin 这样的路径上。这将根据您安装的构建工具的版本而改变。

如果设置没有为您更新 Windows PATH 环境变量,您将需要确保更新。

此外,如果 npm 仍然失败,您可以随时尝试使用 yarn

yarn add web3@1.0.0-beta.24

ERR! Failed at the scrypt@6.0.3 install script.

错误是由scrypt包引起的,因为node-gyp无法重建,

尝试 运行ning cmd 作为管理员和 运行 npm install scrypt@6.0.3 ,如果它不起作用尝试 node-gyp rebuildreinstall it

如果你用 node-gyp 解决了你的问题,你应该在安装过程中的正确位置 Cl.exe node-gyp

我在同一条船上,网上找到的大部分答案都无法帮助(或不是 100% 可行)解决这个重建错误。在尝试了几种不同的方法后,我发现这种方法适用于我的机器 (Windows 10 Pro)。现在,我可以毫无问题地安装 web3。 (或其他与 node-gyp 问题相关的软件包,例如 "truffle unbox react")

我总结的步骤如下:

  1. 安装 NodeJS,Git
  2. 下载 Windows Visual Studio 2015
  3. 打开Visual Studio 2015 并创建"new project..."

    • Select "Create new C++ project"
    • 您应该会看到 VS 要求安装 "Common Tools for Visual C++ 2015" 和 "Windows 8.1 SDK and Universal CRT SDK" 的菜单(scrypt 中的某些进程需要此 Windows 8.1 SDK 文件中的工具)
    • Select 同时安装
  4. Install/link python 通过 npm 命令

    • npm --add-python-to-path="true" --debug install --global windows-build-tools
  5. 将msvs_version设为2015
    • npm config set msvs_version 2015 --global
  6. 安装 web3
    • npm install web3

供参考: 我的 npm 版本:5.6.0 我的节点版本:8.9.4

希望这会有所帮助!