异常:关于node-gyp

很懵!感觉很突然,之前还是好用的 最近在npm install之后项目就不能运行了。【具体造成的原因还不知道(难道是因为node\npm升级了导致?),希望有遇到的大胸弟能指点一二】

问题:

异常如下(这还是缩减版【手动笑哭.png】)

gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed     at getNotFoundError (F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\which\which.js:13:12)
gyp verb `which` failed     at F (F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\which\which.js:68:19)
gyp verb `which` failed     at E (F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\which\which.js:80:29)
gyp verb `which` failed     at F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\which\which.js:89:16
gyp verb `which` failed     at F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\isexe\index.js:42:5
gyp verb `which` failed     at F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\isexe\windows.js:36:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:154:21)
gyp verb `which` failed  python2 { Error: not found: python2
gyp verb `which` failed     at getNotFoundError (F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\which\which.js:13:12)
gyp verb `which` failed     at F (F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\which\which.js:68:19)
gyp verb `which` failed     at E (F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\which\which.js:80:29)
gyp verb `which` failed     at F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\which\which.js:89:16
gyp verb `which` failed     at F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\isexe\index.js:42:5
gyp verb `which` failed     at F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\isexe\windows.js:36:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:154:21)
gyp verb `which` failed   stack:
gyp verb `which` failed    'Error: not found: python2\n    at getNotFoundError (F:\\company_project\\xiexin\\trunk\\app\\xxsdapp\\node_modules\\which\\which.js:13:12)\n    at F (F:\\com
pany_project\\xiexin\\trunk\\app\\xxsdapp\\node_modules\\which\\which.js:68:19)\n    at E (F:\\company_project\\xiexin\\trunk\\app\\xxsdapp\\node_modules\\which\\which.js:80:29)\n    at
 F:\\company_project\\xiexin\\trunk\\app\\xxsdapp\\node_modules\\which\\which.js:89:16\n    at F:\\company_project\\xiexin\\trunk\\app\\xxsdapp\\node_modules\\isexe\\index.js:42:5\n
at F:\\company_project\\xiexin\\trunk\\app\\xxsdapp\\node_modules\\isexe\\windows.js:36:5\n    at FSReqWrap.oncomplete (fs.js:154:21)',
gyp verb `which` failed   code: 'ENOENT' }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` succeeded python C:\Python27\python.EXE
gyp verb check python version `C:\Python27\python.EXE -c "import sys; print "2.7.15
gyp verb check python version .%s.%s" % sys.version_info[:3];"` returned: %j
gyp verb get node dir no --target version specified, falling back to host node version: 10.15.0
gyp verb command install [ '10.15.0' ]
gyp verb install input version string "10.15.0"
gyp verb install installing version: 10.15.0
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp verb install version is already installed, need to check "installVersion"
gyp verb got "installVersion" 9
gyp verb needs "installVersion" 9
gyp verb install version is good
gyp verb get node dir target node version installed: 10.15.0
gyp verb build dir attempting to create "build" dir: F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\node-sass\build
gyp verb build dir "build" dir needed to be created? F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\node-sass\build
gyp verb Not using VS2017: Could not use PowerShell to find VS2017
gyp verb build/config.gypi creating config file
gyp verb build/config.gypi writing out config file: F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\node-sass\build\config.gypi
gyp verb config.gypi checking for gypi file: F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\node-sass\config.gypi
gyp verb common.gypi checking for gypi file: F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\node-sass\common.gypi
gyp verb gyp gyp format was not specified; forcing "msvs"
gyp info spawn C:\Python27\python.EXE
gyp info spawn args [ 'F:\\company_project\\xiexin\\trunk\\app\\xxsdapp\\node_modules\\node-Dnode_gyp_dir=F:\\company_project\\xiexin\\trunk\\app\\xxsdapp\\node_modules\\node-gyp',
gyp info spawn args   '-Dnode_lib_file=C:\\Users\\curry\\.node-gyp\\10.15.0\\<(target_arch)\\node.lib',

在此解决方案中一次生成一个项目。若要启用并行生成,请添加“/m”开关。
生成启动时间为 2019/2/21 9:56:01。
节点 1 上的项目“F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\node-sass\build\binding.sln”(默认目标)。
ValidateSolutionConfiguration:
  正在生成解决方案配置“Release|x64”。
MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装 .NET Framework 2.0 SDK;2) 安装 Microsoft Visual Studio 2005;或 3) 如果将该组件安装到了其他位置
,请将其位置添加到系统路径中。 [F:\company_project\x
iexin\trunk\app\xxsdapp\node_modules\node-sass\build\binding.sln]
已完成生成项目“F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\node-sass\build\binding.sln”(默认目标)的操作 - 失败。


生成失败。

“F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\node-sass\build\binding.sln”(默认目标) (1) ->
(_src_\libsass 目标) -> 
  MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装 .NET Framework 2.0 SDK;2) 安装 Microsoft Visual Studio 2005;或 3) 如果将该组件安装到了其他位
置,请将其位置添加到系统路径中。 [F:\company_project
\xiexin\trunk\app\xxsdapp\node_modules\node-sass\build\binding.sln]

    0 个警告
    1 个错误

已用时间 00:00:00.27
gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\node-gyp\lib\build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "F:\\company_project\\xiexin\\trunk\\app\\xxsdapp\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=
" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd F:\company_project\xiexin\trunk\app\xxsdapp\node_modules\node-sass
gyp ERR! node -v v10.15.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

看到这异常,内心N只***。但是异常还是能看懂的。

  • 首先 python找不到;
  • 其次 很明显的中文提示: 未能加载 Visual C++ 组件“VCBuild.exe”;
  • 最终都是与 gyp...有关的(之前从没有注意到这个插件,也不记得安装过此插件 ·_·)

解决:

通过科学地搜索node-gyp, 发现github有详细安装此工具的步骤。github地址

此处仅列出Window环境安装:

  • 安装gyp命令 npm install -g node-gyp (项目莫名的已有此插件,跳过);
  • 安装Visual C ++构建环境:Visual Studio构建工具
  • 安装Python 2.7v3.x.x不支持),安装后要配置环境变量。成功后执行npm config set python python2.7
  • 执行 npm config set msvs_version 2017

上述步骤全部执行且成功后,项目恢复如初。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容