使用Angular CLI生成 Angular 5項目教程詳解
如果您正在使用angular, 但是沒有好好利用angular cli的話, 那么可以看看本文.
Angular CLI 官網(wǎng):https://github.com/angular/angular-cli
安裝angular cli:
npm install -g @angular/cli
不過首先要確保您安裝了比較新版本的nodejs.
今天主要通過以下幾個方面介紹Angular CLI:
- 生成項目
- 參數(shù)介紹
- 配置和自定義CLI
- 檢查和修復(fù)代碼
- 生成新項目:
ng new my-app
這個命令會生成一個新的項目叫做my-app
并把該項目的文件放在my-app
這個文件夾下.
項目生成完的時候別忘了cd進(jìn)入到my-app目錄.
另一個選項是使用--dry-run參數(shù):
ng new my-app --dry-run
使用這個參數(shù)呢, 不會真的生成項目, 而是會打印出來如果創(chuàng)建該項目的話哪些文件將會生成.
另外一個常用的參數(shù)是--skip-install
:
ng new my-app --skip-install
這個命令作用是, 生成完項目文件之后不執(zhí)行npm install
這個動作.
不過以后還是需要手動執(zhí)行npm install
的.
使用--help參數(shù)可以查看幫助:
ng new --help
下面我要生成一個項目, 先不執(zhí)行npm install:
這個速度非??? 然后使用我最喜歡的IDE VSCode將其打開:
code .
看看整個的項目結(jié)構(gòu), 以及package.json:
scripts下面是一些預(yù)定義的項目命令:
start 是運行項目的意思, 執(zhí)行npm start即可, 或者直接執(zhí)行ng serve也可以.
npm build / ng build 是執(zhí)行構(gòu)建.......
不一一介紹了.
然后看下dependencies:
我們使用的是angular 5.2.0, 前面的^符號表示, 我們使用的版本號是大于等于5.2.0的但是肯定會小于6.
最下面是devDependencies, 里面都是開發(fā)時用的工具庫, 可以看到angular cli就在里面.
接下來看看angular-cli.json這個文件:
angular-cli.json:
它是angular cli針對該項目的配置文件.
里面的prefix比較有趣, 它是所有生成的components和directives的默認(rèn)前綴.
可以查看一下app.component.ts:
它的前綴就是app.
如果想更改默認(rèn)前綴的話, 就可以修改angular-cli.json文件里面的prefix屬性值了, 如果改成sales, 那么以后生成的components和directives的前綴就是sales. 但是對已經(jīng)生成的components/directives就不起作用了.
那么如何保證生成的項目的components/directives前綴是您想要的呢?
就是使用ng new的另一個參數(shù) --prefix:
ng new sales-app --prefix sales
這時里面生成的component的selector就是:
angular-cli.json文件里面的prefix:
在生成的項目里可以看到, 同時還生成了spec文件. 如果我不想讓我的項目生成spec文件呢?
ng new也有這個參數(shù)--skip-tests:
ng new my-app2 --skip-tests
可以看到, 并沒有生成任何spec文件.
ng new的參數(shù)一共有這些:
有幾個介紹過的, 其他的例如:
--skip-git: 生成項目的時候就不會把它初始化為git repository, 默認(rèn)是初始化為git repository的.
--directory: 可以設(shè)定生成的目錄, 默認(rèn)是使用的項目名稱.
--style: 可以設(shè)定樣式的類型, 默認(rèn)是css, 例如可以改成scss.
也可以通過--inline-style把樣式的寫法設(shè)為行內(nèi)樣式, 這個默認(rèn)是false的.
下面我來生成一個使用scss樣式的項目:
可以看到生成的是styles.scss, app.component.scss文件, angular cli不僅會生成scss文件, 而且也會編譯它們.
查看angular-cli.json, 可以在文件的下方看到采用的是scss樣式文件:
這樣, 以后生成的component的默認(rèn)樣式文件就是scss了.
最后我想介紹一下這個參數(shù), --routing:
如果想手動為項目配置路由的話, 還是需要一些步驟的, 所以可以使用這個參數(shù)直接生成帶路由配置的項目.
看一下項目路由文件:
再查看一下app.module:
可以看到import了AppRoutingModule.
綜上, ng new 的這些參數(shù)可以在生成項目的時候作為命令的參數(shù)聯(lián)合使用, 其中有一些參數(shù)也可以在項目生成以后通過修改angular-cli.json文件來做修改.
比較推薦的做法是:
在生成項目的時候使用: --routing, --prefix, --style, --dry-run參數(shù). 首先通過--dry-run參數(shù), 確保會生成哪些文件是否正確, 確認(rèn)后把--dry-run參數(shù)去掉, 生成文件.
下面我生成一個項目, 并且執(zhí)行npm install:
命令執(zhí)行完, 可以看到如下的項目結(jié)構(gòu);
里面有node_modules目錄了, 也就是所有的包都安裝好了, 接下來我可以運行該項目了:
ng serve -o
其中的-o(--open)參數(shù)表示運行項目的時候打開默認(rèn)瀏覽器.
查看瀏覽器http://localhost:4200:
ng serve的優(yōu)點是, 當(dāng)代碼文件有變化的時候會自動重新構(gòu)建并且刷新瀏覽器, 您可以試一下.
另外一種配置CLI的方法 ng set.
前面我介紹了使用ng new參數(shù)和修改angular-cli.json文件的方式來配置cli, 下面我介紹下通過ng set <屬性> <值> 來配置cli.
就拿當(dāng)前這個項目來說, 它的默認(rèn)樣式文件類型是scss:
如果我在該項目目錄執(zhí)行:
ng set defaults.styleExt css
那么該項目的設(shè)置就會改變:
如果使用參數(shù) -g(--global), 那就會進(jìn)行一個全局的配置, 這個配置會保存在一個文件里(如果還沒有任何去安居配置的情況下這個文件并不存在), 這個文件應(yīng)該在users/xxx目錄下, mac的話應(yīng)該在home目錄下.
它不會影響到已經(jīng)存在的項目. 但是如果新生成的項目不指定ng new的參數(shù)情況下, 默認(rèn)就會采用全局的配置:
Lint:
使用命令ng lint.
首先可以查看一下幫助:
ng lint --help
--fix: 嘗試修復(fù)lint出現(xiàn)的錯誤.
--format: lint的輸出格式.
首先我針對上面的my-app6執(zhí)行ng lint:
沒有問題.
然后我故意弄出來幾處錯誤/不規(guī)范的寫法:
然后再執(zhí)行ng lint:
可以看到這些錯誤都被詳細(xì)的列了出來.
把格式化的參數(shù)加進(jìn)去:
可以看到現(xiàn)在lint結(jié)果的顯示更直觀了一些.
下面執(zhí)行ng lint --fix:
執(zhí)行后lint的錯誤減少到了一個, 看下代碼:
以上所述是小編給大家介紹的使用Angular CLI生成 Angular 5項目教程詳解,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
相關(guān)文章
angularjs創(chuàng)建彈出框?qū)崿F(xiàn)拖動效果
這篇文章主要為大家詳細(xì)介紹了angularjs創(chuàng)建彈出框?qū)崿F(xiàn)拖動效果的相關(guān)資料,angularjs modal模態(tài)框創(chuàng)建可拖動的指令,感興趣的小伙伴們可以參考一下2016-01-01AngularJs $parse、$eval和$observe、$watch詳解
這篇文章主要介紹了AngularJs $parse、$eval和$observe、$watch的相關(guān)資料,需要的朋友可以參考下2016-09-09詳解angularjs 關(guān)于ui-router分層使用
本篇文章主要介紹了詳解angularjs 關(guān)于ui-router分層使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06AngularJS constant和value區(qū)別詳解
angularJS可以通過constant(name,value)和value(name,value)對于創(chuàng)建服務(wù)也是很重要的。他們之間有什么不同呢?今天小編給大家分享AngularJS constant和value區(qū)別詳解,需要的朋友參考下2017-02-02AngularJS使用ng-repeat和ng-if實現(xiàn)數(shù)據(jù)的刪選顯示效果示例【適用于表單數(shù)據(jù)的顯示】
這篇文章主要介紹了AngularJS使用ng-repeat和ng-if實現(xiàn)數(shù)據(jù)的刪選顯示效果,非常適用于表單數(shù)據(jù)的顯示使用,涉及ng-repeat和ng-if命令的相關(guān)使用技巧,需要的朋友可以參考下2016-12-12AngularJs定制樣式插入到ueditor中的問題小結(jié)
這篇文章主要介紹了AngularJs定制樣式插入到ueditor中的問題小結(jié)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-08-08