欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

buildcheck包報(bào)錯(cuò)問(wèn)題排查解決

 更新時(shí)間:2023年02月09日 08:34:27   作者:鄒R-ainna  
這篇文章主要為大家介紹了buildcheck包報(bào)錯(cuò)問(wèn)題排查解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

問(wèn)題

最近項(xiàng)目開(kāi)發(fā)中遇到 buildcheck 包拋錯(cuò),因修復(fù)該報(bào)錯(cuò)占用了一點(diǎn)時(shí)間,特此這里記錄下。

因項(xiàng)目本地部署需要上傳打包文件,使用到了 ssh2-sftp-client 包,在拉取包的時(shí)候控制臺(tái)拋如下錯(cuò)誤:

warning Error running install script for optional dependency: "D:\\Projects\\xxx\\node_modules\\cpu-features: Command failed.
Exit code: 1
Command: node buildcheck.js > buildcheck.gypi && node-gyp rebuild
Arguments:
Directory: D:\\Projects\\xxx\\node_modules\\cpu-features
Output:
D:\\Projects\\xxx\\node_modules\\buildcheck\\lib\\index.js:133
        throw new Error('Unable to detect compiler type');
        ^
Error: Unable to detect compiler type
    at new BuildEnvironment (D:\\Projects\\vite-ui\\packages\\HtUpssh\\node_modules\\buildcheck\\lib\\index.js:133:15)
    at Object.<anonymous> (D:\\Projects\\vite-ui\\packages\\HtUpssh\\node_modules\\cpu-features\\buildcheck.js:5:12)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
    at internal/main/run_main_module.js:17:47"

該錯(cuò)誤不會(huì)影響文件上傳功能,但是有問(wèn)題還是要想辦法解決掉。

原因

經(jīng)過(guò)排查發(fā)現(xiàn),該報(bào)錯(cuò)是因?yàn)椋?/p>

  • ssh2-sftp-client 包依賴了 ssh2 包。
  • ssh2 包依賴了可選包 cpu-features 包。

  • cpu-features 包依賴了 buildcheck 包;并且在包安裝的時(shí)候執(zhí)行了 install 命令,運(yùn)行了 buildcheck.js 腳本來(lái)檢查node的構(gòu)建環(huán)境;而 buildcheck.js 里引用了 buildcheck 包,執(zhí)行其源碼。

buildcheck.js 代碼:

  • buildcheck 包里代碼在執(zhí)行時(shí),匹配不到系統(tǒng)可支持的工具類型,就拋錯(cuò)了。

通過(guò) buildcheck 源碼的排查,當(dāng)是 windows 系統(tǒng)時(shí),會(huì)去查找系統(tǒng)安裝的工具包,匹配其版本號(hào),獲取其類型,根據(jù)不同的類型走不同的編譯邏輯。(buildcheck源碼沒(méi)有細(xì)看,粗略看了下,理解錯(cuò)誤的話麻煩指正)

我電腦上查找出的 packages 里 Microsoft.VisualStudio.Component.Windows10SDK 沒(méi)有版本號(hào),所以匹配失敗,導(dǎo)致檢測(cè)不出編譯類型,從而拋錯(cuò)。

解決

以上報(bào)錯(cuò)是在 buildcheck 包執(zhí)行時(shí)的報(bào)錯(cuò)。所以解決思路是:

  • Windows10SDK 補(bǔ)充版本號(hào)
  • buildcheck 包源碼僅下載不執(zhí)行
  • 移除對(duì) cpu-features 包的依賴

因?yàn)?buildcheck 的源碼執(zhí)行是在 install 的時(shí)候,所以通過(guò)打補(bǔ)丁的方法也不能解決,補(bǔ)丁是在 install 之后。

方法一

Windows10SDK 補(bǔ)充版本號(hào)的話需要通過(guò) vs staller 勾選 window10SDK 組件后重裝,重裝成本較高,且安裝文件較大。該方法被否決。

方法二

buildcheck 包僅下載不執(zhí)行??梢栽?npm 命令行中使用 --ignore-scripts 實(shí)現(xiàn)。

yarn add -D buildcheck --ignore-scripts

或者 .yarnrc 文件中配置:

ignore-scripts 'true'

或者 .npmrc 文件中配置:

ignore-scripts = true

添加 ignore-scripts 后,npm scripts 命令將不會(huì)執(zhí)行。那 buildcheck 源碼邏輯也就不會(huì)執(zhí)行了。但是這個(gè)命令會(huì)導(dǎo)致 npm 其他的命令也不執(zhí)行,會(huì)有一定風(fēng)險(xiǎn)。該方法也不建議。

方法三

移除對(duì) cpu-featurs 包的依賴。因?yàn)槲业男枨髨?chǎng)景是僅支持文件上傳即可。cpu-features 包不是必須包,可以移除。而 cpu-features 包是在 ssh2 包中被引入的。

可以在 packages-lock.json 去掉對(duì) cpu-features 包的依賴。

或者在 yarn.lock 去掉對(duì) cpu-features 包的依賴。

但是鎖包的文件容易被篡改,而且增加維護(hù)成本。該方法也不是特別適合。

方法四

重發(fā) ssh2 包,移除對(duì) cpu-features 包的依賴。因?yàn)槲覀儼谒絺}(cāng)維護(hù),所以在私倉(cāng)里發(fā)布了同名的 ssh2 包,packages.json 里移除了對(duì) cpu-features 的依賴。當(dāng)拉取包文件的時(shí)候,優(yōu)先從私倉(cāng)拉取。

項(xiàng)目中也是采用這個(gè)方法來(lái)解決。如果大家有更好的辦法,歡迎留言。

總結(jié)

遇到問(wèn)題不能逃避,抽絲剝繭,總能解決的,無(wú)非是時(shí)間問(wèn)題罷了。

以上就是buildcheck包報(bào)錯(cuò)問(wèn)題排查解決的詳細(xì)內(nèi)容,更多關(guān)于buildcheck包報(bào)錯(cuò)排查的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JavaScript?設(shè)計(jì)模式之洋蔥模型原理及實(shí)踐應(yīng)用

    JavaScript?設(shè)計(jì)模式之洋蔥模型原理及實(shí)踐應(yīng)用

    這篇文章主要介紹了JavaScript?設(shè)計(jì)模式之洋蔥模型原理及實(shí)踐應(yīng)用,主要針對(duì)項(xiàng)目中遇到的問(wèn)題,引申到koa-compose原理解析。通過(guò)學(xué)習(xí)洋蔥模式來(lái)解決我們實(shí)際項(xiàng)目中的問(wèn)題
    2022-09-09
  • JavaScript 反射學(xué)習(xí)技巧

    JavaScript 反射學(xué)習(xí)技巧

    這篇文章主要給大家分享的是JavaScript 的反射學(xué)習(xí)技巧,主要是區(qū)別在于所有的函數(shù)對(duì)象屬性過(guò)于復(fù)雜,而且額外增加可能會(huì)導(dǎo)致程序行為不合理,所以擴(kuò)展 Reflect 函數(shù)來(lái)專門(mén)對(duì)函數(shù)對(duì)象處理調(diào)用方法,構(gòu)造對(duì)象,獲取或者設(shè)置屬性等相關(guān)操作。下面一起進(jìn)入文章內(nèi)容吧
    2021-10-10
  • 面試手寫(xiě)實(shí)現(xiàn)Promise.all

    面試手寫(xiě)實(shí)現(xiàn)Promise.all

    這篇文章主要為大家介紹了面試手寫(xiě)實(shí)現(xiàn)Promise.all過(guò)程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 微信小程序 獲取javascript 里的數(shù)據(jù)

    微信小程序 獲取javascript 里的數(shù)據(jù)

    這篇文章主要介紹了微信小程序 獲取javascript 里的數(shù)據(jù)的相關(guān)資料,這里通過(guò)實(shí)例來(lái)說(shuō)明如何獲取javascript里的數(shù)據(jù),希望能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • 特殊字符、常規(guī)符號(hào)及其代碼對(duì)照表

    特殊字符、常規(guī)符號(hào)及其代碼對(duì)照表

    特殊字符、常規(guī)符號(hào)及其代碼對(duì)照表...
    2006-06-06
  • 微信小程序之藍(lán)牙的鏈接

    微信小程序之藍(lán)牙的鏈接

    這篇文章主要介紹了微信小程序之藍(lán)牙的鏈接的相關(guān)資料,希望通過(guò)本文大家能夠掌握小程序藍(lán)牙的開(kāi)發(fā)方法,需要的朋友可以參考下
    2017-09-09
  • 微信小程序 wx.uploadFile無(wú)法上傳解決辦法

    微信小程序 wx.uploadFile無(wú)法上傳解決辦法

    這篇文章主要介紹了微信小程序 wx.uploadFile無(wú)法上傳解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 不可變數(shù)據(jù)方案之immer.js原理解析

    不可變數(shù)據(jù)方案之immer.js原理解析

    這篇文章主要為大家介紹了不可變數(shù)據(jù)方案之immer.js原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • svgicon組件使用方法示例詳解

    svgicon組件使用方法示例詳解

    這篇文章主要為大家介紹了svgicon組件使用方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Nest.js 之依賴注入原理及實(shí)現(xiàn)過(guò)程詳解

    Nest.js 之依賴注入原理及實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要為大家介紹了Nest.js 之依賴注入原理及實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01

最新評(píng)論