angular開發(fā)常見錯(cuò)誤

  • 很多開發(fā)者到我這里來抱怨說,在 Windows 平臺(tái)上安裝 @angular/cli 會(huì)報(bào)很多 error,那是因?yàn)?@angular/cli 在 Windows 平臺(tái)上面依賴 Python 和 Visual Studio 環(huán)境,而很多開發(fā)者的機(jī)器上并沒有安裝這些東西。

  • node-sass 模塊被墻的問題,強(qiáng)烈推薦使用 cnpm 進(jìn)行安裝,可以非常有效地避免撞墻。

  • 一些開發(fā)者來抱怨說 @angular/cli 在打包的時(shí)候加上 --prod 參數(shù)會(huì)報(bào)錯(cuò),無法編譯。這是一個(gè)很常見的問題,因?yàn)?@angular/cli 最新的版本經(jīng)常會(huì)有 bug,只要在你項(xiàng)目的 package.json 里面降低一個(gè)小版本號(hào)就OK。
  • @angular/cli 默認(rèn)生成的 karma.conf.js 配置文件里面采用了一個(gè)有 bug 的 html 報(bào)告生成器,導(dǎo)致 ng test 運(yùn)行報(bào)錯(cuò),我們需要把這個(gè) reporter 改成 mocha(摩卡)。

  • 有一些朋友說,本地開發(fā)的時(shí)候運(yùn)行得很好,上線之后所有請(qǐng)求404。這也是一個(gè)常見的坑,因?yàn)槟阈枰o Web 容器配置一下處理 http 請(qǐng)求的規(guī)則,把前端路由扔回去交給 Angular 處理,請(qǐng)參考這份文檔

集中回答一些常見的問題

瀏覽器兼容性

關(guān)于 Angular 的瀏覽器兼容性,請(qǐng)看下圖:


enter image description here

有一些國(guó)內(nèi)的開發(fā)者會(huì)來爭(zhēng)論兼容 IE8 的問題,我想給你兩個(gè)事實(shí):
第一個(gè)事實(shí)是:截至2017年7月底,Chrome 的全球市場(chǎng)份額已經(jīng)接近60%,加上 Firefox的12.28%,真的沒有那么多人用 IE 了。

enter image description here

數(shù)據(jù)來源
第二個(gè)事實(shí)是:天貓已經(jīng)于2016年4月宣布放棄支持 IE6、7、8。而根據(jù)百度流量研究院的統(tǒng)計(jì),IE8目前的整體市場(chǎng)份額已經(jīng)下降到了9.31%:

enter image description here

數(shù)據(jù)來源
不值得為了這么少的市場(chǎng)份額付出那么多的研發(fā)和維護(hù)成本。
你完全可以以上兩點(diǎn)事實(shí)去說服你的客戶。

命名約定

老版本使用 AngularJS 指代,所有新版本都叫做 Angular。原因很好理解,因?yàn)槔习姹臼怯?JS 開發(fā)的,所以帶一個(gè) JS 后綴,而新版本是基于 TypeScript 的,帶 JS 后綴不合適。

關(guān)于 TypeScript

這個(gè)系列的文章不會(huì)單獨(dú)講 TypeScript,正如我一直強(qiáng)調(diào)的:TypeScript 不難,JavaScript 才難。你跟著我的思路,TypeScript 絕對(duì)不會(huì)成為你學(xué)習(xí) Angular 的障礙。相反,一旦你寫熟練了之后,TypeScript 可以非常有效地提升編碼效率和程序可讀性。

關(guān)于版本號(hào)

根據(jù)官方的解釋,Angular 從2.0之后會(huì)保證向下兼容,每隔半年會(huì)升級(jí)一個(gè)大版本,只有升級(jí)大版本的時(shí)候才會(huì)做一些 breaking change。
所以這個(gè)系列文章里面不再?gòu)?qiáng)調(diào)版本號(hào),涉及到的所有實(shí)例代碼都基于目前(2017-10)最新的4.x版本。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容