為什麼Angular2 以後就不需要Bower?

個人其實沒怎麼接觸過AngularJS 但別的組的同事今天突然問我,為什麼Angular2 不需要用到Bower,
同事提到如果沒有Bower, 怎麼用HTTP

其實我不是很懂他的問題,我查了Bower, 好像是AngularJS 會用Npm 先install Bower, 接下來用Bower來做所有套件管理。但我不是很了解為什麼AngularJS需要?

我上網查了一下,有人說是因為,AngularJS 是用ES5寫的,所以和其他套件不相容?不能Import? 而Angular2以後因為都用TypeScript 都會compile 成ES5 所以只要用Npm就可以? 我也不大懂文章說的意思…其實對於套件我都不太了解,只知道npm install就解決…然後Angular cli create http service,實際上到底怎麼運作的還是不大懂 有勞各位大大解惑> <

文章連結=> https://www.quora.com/Why-is-Angular-2-not-available-in-Bower

恩,在回答之前,先釐清一個觀念 bowernpm 都是套件管理工具

這跟使用什麼套件管理一點關係都沒有。AngularJS 有內建的 $http API 可供使用,該地位跟 Angular 內的 HttpClient 是一樣的,早在很久以前,很多套件開發者,後來只把套件更新到 npm 上,而 bower 就慢慢地消失了.

import 與 required 有著相同的功能,只是與法上的不同. ES5 使用 required。

1個讚

可以查看這篇 issue
而且如版主說的 這只是套件管理工具

沒有 Bower 怎麼用 HTTP 聽起來很怪就是
這取決於你想使用什麼工具來安裝第三方套件除了 npm 還有 yarn 都是套件管理工具

至於說不需要 Bower 那是因為這個套件能做事情 npm 都能做
那為什麼還需要 bower? 可以發現很多套件都有支援 npm 相較於 bower 反而少

現在可以透過 js 寫前後端 如果都能用一種工具來統一管理 也省得麻煩吧?

1個讚

了解~~那為什麼一開始Bower還會出現呢? 感覺一開始AngularJS就根本不需要Bower 直接用Npm 做套件管理不就好了? 所以說現在即使寫 AngularJS 也根本不需要再用Bower 所以現在還在用Bower的人只是因為懶得移植到Npm上嗎?(我別組的同事他們都還在用 Bower+ AngularJS 我們組現在用NPM + Angular)

@yosheng 按照那篇寫的,好像是因為以前的Npm不夠好用?

這段歷史有點久遠了 XD. 可以不要追究為什麼了嗎?

前端工具的生命週期都是這樣的.

2個讚

我印象中 npm 5 後有很大的效能改進
似乎不會輸給 yarn 至於 Bower 基本上應該能用 npm 取代了…

大部分套件都是支援 npm 不支援 bower 新的套件也只會推到 npm 不會推到 bower
比如 bootstrap 4

1個讚

上述前輩都講得比較深,我猜你還是聽不懂,我給你一個籠統的說明好了。

歷史的脈絡大概是這樣:
當初 NPM 沒有處理依賴關係也沒有 lock file,所以會安裝到什麼套件跟擲筊一樣(不知道你能不能想像這有多可怕。
因應需求,bower 誕生,但從 yarn npm 開始支援 lock file 並處理依賴關係後,人們自然不會再選擇多依賴 bower ,所以它的階段性任務就結束了,也自然而然地退出歷史的舞台。

我講的這些應該都可以 google 得到,學會問 google 吧

1個讚