會產生冗餘問題
前端與後端使用同一套包管理軟體可以減少公共部分的耦合,但是會導致不必要的冗餘。
比如一個bootstrap包,是不可能被後端使用的。但是如果統一使用npm管理,每次npm install都會安裝bootstrap包,而後端一輩子都用不倒,完全是浪費頻寬、儲存空間、時間。並且你在執行後端前,每次都安裝個bootstrap,你不覺得噁心嗎?
執行環境完全不同
前端與後端的執行環境是完全不同的,前端運行於瀏覽器內(即主要是DOM與BOM環境,相對受限),後端則運行於OS內(有無限的API與可能性)。所以這兩種開發環境是完全不同的。不同的開發環境使用同一個包管理檔案顯然是不合時宜的,也不符合模組化的理念。
開發人員也可能不同
前端與後端通常是不同的開發團隊,因些前端關注的是HTML,CSS,DOM,BOM, js的UI庫與動作庫。而後端關注的是效能,安全,效率,資料,快取,使用者管理。他們可能都會用到gulp/grunt,而後端通常不會用到webpack,wiredep,bootstrap, jQuery這類純前端的包。所以強行將他們捆綁在一起是沒有必要的。
同構包可以分開打包
由於isomorphic js的流行,同構包也會越來越多。但是其實你會發現,不管如何同構,前後端的執行環境還是不同的。所以同構包的呼叫環境還是不一樣的。前端的包通常需要透過browserify,webpack或者gulp等工具釋出成前端可用的包。跟npm包直接透過package.json決定從什麼地方接入是不同的。即使npm可以為前端包提供欄位供前端接入,也會顯得非常混亂。
會產生冗餘問題
前端與後端使用同一套包管理軟體可以減少公共部分的耦合,但是會導致不必要的冗餘。
比如一個bootstrap包,是不可能被後端使用的。但是如果統一使用npm管理,每次npm install都會安裝bootstrap包,而後端一輩子都用不倒,完全是浪費頻寬、儲存空間、時間。並且你在執行後端前,每次都安裝個bootstrap,你不覺得噁心嗎?
執行環境完全不同
前端與後端的執行環境是完全不同的,前端運行於瀏覽器內(即主要是DOM與BOM環境,相對受限),後端則運行於OS內(有無限的API與可能性)。所以這兩種開發環境是完全不同的。不同的開發環境使用同一個包管理檔案顯然是不合時宜的,也不符合模組化的理念。
開發人員也可能不同
前端與後端通常是不同的開發團隊,因些前端關注的是HTML,CSS,DOM,BOM, js的UI庫與動作庫。而後端關注的是效能,安全,效率,資料,快取,使用者管理。他們可能都會用到gulp/grunt,而後端通常不會用到webpack,wiredep,bootstrap, jQuery這類純前端的包。所以強行將他們捆綁在一起是沒有必要的。
同構包可以分開打包
由於isomorphic js的流行,同構包也會越來越多。但是其實你會發現,不管如何同構,前後端的執行環境還是不同的。所以同構包的呼叫環境還是不一樣的。前端的包通常需要透過browserify,webpack或者gulp等工具釋出成前端可用的包。跟npm包直接透過package.json決定從什麼地方接入是不同的。即使npm可以為前端包提供欄位供前端接入,也會顯得非常混亂。