一個npm包依賴引起的錯誤

從新梳理項目中的包依賴時,以爲使用^或者~在正式項目中彷佛不靠譜,由於永遠不知道真正打包的結果是否是對的。一個沒有什麼安全的感人,總能想到不少風險,例若有個傢伙在新版本中惡意注入了"rm * -rf"這樣的代碼,那麼咱們的項目不是悲劇了。爲了穩妥,我鎖住了全部依賴的版本。根據npm的機制而言,這樣仍是堵不住全部入口的,除非把全部的依賴包的package.json中的版本依賴也鎖住。固然這是不可能的。不過,風險仍是會小一點的。node

很快就改好了package.json的內容,而後把項目跑起來(但願上帝保佑吧)遺憾的是,出現錯誤:npm

ERROR in ./~/rc-tooltip/lib/Tooltip.js
Module not found: Error: Cannot resolve module 'babel-runtime/helpers/classCallCheck' in \node_modules\rc-tooltip\lib
 @ ./~/rc-tooltip/lib/Tooltip.js 15:23-70

ERROR in ./~/rc-tooltip/lib/Tooltip.js
Module not found: Error: Cannot resolve module 'babel-runtime/helpers/possibleConstructorReturn' in \node_modules\rc-tooltip\lib
 @ ./~/rc-tooltip/lib/Tooltip.js 19:34-92

ERROR in ./~/rc-tooltip/lib/Tooltip.js
Module not found: Error: Cannot resolve module 'babel-runtime/helpers/objectWithoutProperties' in \node_modules\rc-tooltip\lib
 @ ./~/rc-tooltip/lib/Tooltip.js 11:32-88

看上面的錯誤信息是babel-runtime的問題,一會兒懵逼了,以前是對的,怎麼鎖住版本好後,babel-runtime就跪了?立刻看看babel-runtime的源碼,發現確實沒有classCallCheck等文件,難道版本有問題?看了一下版本,發現babel-runtime的版本竟然是4.7.3,什麼鬼!如今的版本已是6.23.0,絕對是不對的。再看看babel-runtime的依賴來源,發現是一個'confit'的組件中引用的,那麼就是rc-tooltip和confit這兩個組件引用babel-runtime有衝突。
解決方案:
在項目package.json中定義babel-runtime的版本爲6.23.0json

相關文章
相關標籤/搜索