最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

buildcheck包報錯問題排查解決

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

問題

最近項目開發(fā)中遇到 buildcheck 包拋錯,因修復(fù)該報錯占用了一點時間,特此這里記錄下。

因項目本地部署需要上傳打包文件,使用到了 ssh2-sftp-client 包,在拉取包的時候控制臺拋如下錯誤:

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"

該錯誤不會影響文件上傳功能,但是有問題還是要想辦法解決掉。

原因

經(jīng)過排查發(fā)現(xiàn),該報錯是因為:

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

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

buildcheck.js 代碼:

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

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

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

解決

以上報錯是在 buildcheck 包執(zhí)行時的報錯。所以解決思路是:

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

因為 buildcheck 的源碼執(zhí)行是在 install 的時候,所以通過打補丁的方法也不能解決,補丁是在 install 之后。

方法一

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

方法二

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

yarn add -D buildcheck --ignore-scripts

或者 .yarnrc 文件中配置:

ignore-scripts 'true'

或者 .npmrc 文件中配置:

ignore-scripts = true

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

方法三

移除對 cpu-featurs 包的依賴。因為我的需求場景是僅支持文件上傳即可。cpu-features 包不是必須包,可以移除。而 cpu-features 包是在 ssh2 包中被引入的。

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

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

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

方法四

重發(fā) ssh2 包,移除對 cpu-features 包的依賴。因為我們包在私倉維護,所以在私倉里發(fā)布了同名的 ssh2 包,packages.json 里移除了對 cpu-features 的依賴。當(dāng)拉取包文件的時候,優(yōu)先從私倉拉取。

項目中也是采用這個方法來解決。如果大家有更好的辦法,歡迎留言。

總結(jié)

遇到問題不能逃避,抽絲剝繭,總能解決的,無非是時間問題罷了。

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

相關(guān)文章

最新評論

灵山县| 遵义市| 大埔县| 宜章县| 石城县| 永胜县| 广宗县| 高密市| 烟台市| 湘西| 兰坪| 大埔区| 棋牌| 东港市| 长顺县| 淮滨县| 天门市| 咸丰县| 长岛县| 资溪县| 榕江县| 郑州市| 罗城| 宜丰县| 昌宁县| 保定市| 利津县| 田阳县| 贵溪市| 蒲江县| 和田县| 修武县| 祁连县| 依安县| 冷水江市| 惠东县| 岱山县| 淮北市| 樟树市| 阿拉善盟| 仁怀市|