
我們已經知道前端資產和依賴管理是 npm 的一個巨大用例,也是 Node.js 采用的主要驅動力。 但究竟有多大? 這是一個很難回答的問題。 npm 上下載最多的包列表并不是很有幫助:像 async、minimist 和 request 這樣的包是依賴于成千上萬個其他包的基本包,所以它們當然會一直安裝和下載 作為這些軟件包安裝的一部分。那么,說到前端包,摩擦在哪里?
1. node_modules 沒有按照前端包需要的方式排列
這是一個非常明顯的問題。 node_modules 文件夾是 npm 默認放置包的位置,以利用 Node.js 模塊加載語義。根據你安裝的軟件包,軟件包最終位于樹中的不同位置。這對 Node 來說很有效,但是 HTML 和 CSS,無論好壞,通常都希望東西在一個位置,比如 /static/mypackage?梢钥隙ǖ氖,有一些解決方法,但還沒有一流的解決方案。
2. 前端依賴有不同的沖突解決需求
Node 模塊加載器的樂趣之一是它允許你同時存在同一個模塊的多個不兼容的版本,而 npm 的樂趣之一是它將這些版本放在正確的位置,以便你期望的版本會加載到你期望的位置。這對消除“依賴地獄”大有幫助,也是 Node 的“許多小模塊”模式如此實用和受歡迎的原因之一。
但是前端依賴項根本無法以這種方式工作。如果你加載兩個版本的 jQuery,一個會“獲勝”。如果你加載兩個版本的 Bootstrap CSS 框架,它們將同時應用并破壞你的樣式。未來,Web 組件和 Shadow DOM 等 HTML 的新發展可能有助于解決這些問題,但目前,前端依賴關系可能會發生沖突,我們如何識別和優雅地處理它?
3. 維護多個包清單很煩人
前面問題的解決方案一直是為前端包創建額外的注冊中心,但這造成了單個項目必須有一個package.json、一個bower.json、一個component.json等等的情況,并且每次發生小更新時都編輯它們,像所有數據重復一樣,這既繁瑣又容易出錯。
4. 尋找與瀏覽器兼容的包是件痛苦的事
npm 是 JavaScript 的注冊表,但目前注冊表中的大部分內容是 Node.js。其中一些模塊適用于使用諸如 browserify 之類的模塊的客戶端時可以工作,但其中一些則不能。目前,如果不嘗試它們,就無法輕松找出哪些可以,哪些不可以。 注:尊重原創文章,轉載請注明出處和鏈接 http://www.hebeijilong.cn/news-id-20833.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注web前端頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050