<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
最近專案開發中遇到 buildcheck 包拋錯,因修復該報錯佔用了一點時間,特此這裡記錄下。
因專案本地部署需要上傳打包檔案,使用到了 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"
該錯誤不會影響檔案上傳功能,但是有問題還是要想辦法解決掉。
經過排查發現,該報錯是因為:
buildcheck.js 程式碼:
通過 buildcheck 原始碼的排查,當是 windows 系統時,會去查詢系統安裝的工具包,匹配其版本號,獲取其型別,根據不同的型別走不同的編譯邏輯。(buildcheck原始碼沒有細看,粗略看了下,理解錯誤的話麻煩指正)
我電腦上查詢出的 packages 裡 Microsoft.VisualStudio.Component.Windows10SDK 沒有版本號,所以匹配失敗,導致檢測不出編譯型別,從而拋錯。
以上報錯是在 buildcheck 包執行時的報錯。所以解決思路是:
因為 buildcheck 的原始碼執行是在 install 的時候,所以通過打修補程式的方法也不能解決,修補程式是在 install 之後。
Windows10SDK 補充版本號的話需要通過 vs staller 勾選 window10SDK 元件後重灌,重灌成本較高,且安裝檔案較大。該方法被否決。
buildcheck 包僅下載不執行。可以在 npm 命令列中使用 --ignore-scripts 實現。
yarn add -D buildcheck --ignore-scripts
或者 .yarnrc 檔案中設定:
ignore-scripts 'true'
或者 .npmrc 檔案中設定:
ignore-scripts = true
新增 ignore-scripts 後,npm scripts 命令將不會執行。那 buildcheck 原始碼邏輯也就不會執行了。但是這個命令會導致 npm 其他的命令也不執行,會有一定風險。該方法也不建議。
移除對 cpu-featurs 包的依賴。因為我的需求場景是僅支援檔案上傳即可。cpu-features 包不是必須包,可以移除。而 cpu-features 包是在 ssh2 包中被引入的。
可以在 packages-lock.json 去掉對 cpu-features 包的依賴。
或者在 yarn.lock 去掉對 cpu-features 包的依賴。
但是鎖包的檔案容易被篡改,而且增加維護成本。該方法也不是特別適合。
重發 ssh2 包,移除對 cpu-features 包的依賴。因為我們包在私倉維護,所以在私倉裡釋出了同名的 ssh2 包,packages.json 裡移除了對 cpu-features 的依賴。當拉取包檔案的時候,優先從私倉拉取。
專案中也是採用這個方法來解決。如果大家有更好的辦法,歡迎留言。
遇到問題不能逃避,抽絲剝繭,總能解決的,無非是時間問題罷了。
以上就是buildcheck包報錯問題排查解決的詳細內容,更多關於buildcheck包報錯排查的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45