이번에는 Angular CLI 구성 및 Serve 사용법에 대한 자세한 설명을 가져왔습니다. Angular CLI 구성 및 Serve 사용법에 대한 주의 사항은 무엇인가요?
Build.
빌드는 주로 다음 작업을 수행합니다.
프로젝트 파일을 컴파일하여 특정 디렉터리에 출력합니다.
빌드 대상에 따라 출력 결과가 결정됩니다
-
번들링 패키징
-
프로덕션 환경 빌드에서는 uglify 및 tree-shaking(쓸데없는 코드 제거)도 수행됩니다.
ng 빌드
도움말을 먼저 확인할 수 있습니다.
개발 환경의 경우 다음을 사용하세요. ng build 명령.
기본적으로 해당 출력 디렉터리는 .angular-cli.json 파일의 ourDir 속성에 구성됩니다.
빌딩 후에는 dist에 다음 파일이 표시됩니다.
- inline.bundle.js 이것은 webpack의 런타임입니다.
- main.bundle.js는 브라우저의 Pollyfills입니다. .js 스타일
- Vendor.bundle.js는 각도 및 타사 라이브러리입니다
- 소스 맵 탐색기를 사용하여 종속성을 분석하고 번들에 어떤 모듈과 클래스가 있는지 확인할 수 있습니다.먼저 수정하세요 이전 예제의 코드:
Execute ng build:
![](https://img.php.cn/upload/article/000/061/021/67431e0397c480ebbecd62616c485c37-0.png)
이러한 파일이 생성된 것을 볼 수 있습니다.
dist에서 index.html 형식을 지정하고 살펴보세요.
![](https://img.php.cn/upload/article/000/061/021/4fc714eba5eb2510beb4edb9184bfb33-1.png)
볼 수 있습니다
quoted
5개의 js 파일이 생성되었습니다.
main.bundle.js를 열면 제가 작성한 코드를 볼 수 있습니다:
![](https://img.php.cn/upload/article/000/061/021/4fc714eba5eb2510beb4edb9184bfb33-3.png)
아래 프로그램을 실행하세요: ng Serve -o:
ng Serve를 실행하면 위의 파일들이 로드되는 것을 볼 수 있습니다.
ng build는 개발 빌드이기 때문에 최적화가 이루어지지 않았고, 파일의 크기가 상당히 큽니다.
이때 파일 디렉터리를 보면 거기 있습니다. dist 디렉터리가 없습니다.
![](https://img.php.cn/upload/article/000/061/021/01fa50dc9d969d43c9c2cd6a6eee636d-5.png)
파일은 어떻게 제공되나요?
이는 현재 webpack이 메모리에 제공되기 때문입니다.
아래 분석을 위해 source-map-explorer를 사용하세요. 먼저
install
: ![](https://img.php.cn/upload/article/000/061/021/01fa50dc9d969d43c9c2cd6a6eee636d-6.png)
npm install --save-dev source-map-explorer
로그인 후 복사
그런 다음 ng build를 실행하고 다시 실행하세요:
.\node_modules\.bin\source-map-explorer dist\main.bundle.js
로그인 후 복사
결과는 다음 그래프를 생성합니다:
vendor.bundle의 상황을 보세요:
.\node_modules\.bin\source-map-explorer dist\vendor.bundle.js
로그인 후 복사
그 안에 더 많은 것들이 있습니다.
Build Targets 및 Environment.
Environment는 어떤 환경 파일이 사용되는지를 나타냅니다.![](https://img.php.cn/upload/article/000/061/021/537b7a68dde0af0a89995acf9f207af0-8.png)
그리고 Targets는 프로젝트 파일이 어떻게 최적화되는지 결정하는 데 사용됩니다.개발 빌드와 프로덕션 빌드의 비교를 살펴보세요.
|
ng build |
ng build --prod |
Environment |
environment.ts |
environment ..prod.ts |
캐싱 |
|
모든 빌드된 파일 |
|
생성 |
생성되지 않음 |
CSS를 다루는 방법 | JS 파일로 전역 CSS 출력
|
생성된 CSS 파일 |
uglify |
은 |
이 |
이 아닙니다. 나무 흔들기
|
제거하지 않으면 쓸모 없음 Code
|
쓸데없는 코드를 제거하세요
|
AOT
|
not
|
is
|
묶음 포장 |
is
|
is
|
- -build-optimizer
|
No
|
예(AOT 및 Angular5 사용)
|
--named-chunks
|
예
|
No
|
--출력 -hashing
|
media
|
all
|
下面命令都是针对开发时的build, 它们的作用是一样的:
ng build
ng build --dev
ng build --dev -e=dev
ng build --target=development --environment=dev
로그인 후 복사
下面则是生产build:
ng build --prod
ng build --prod -e=prod
ng build --target=production --environment=prod
로그인 후 복사
其它常用的参数还有:
--sourcemap -sm 生成source map
--aot Ahead of Time编译
--watch -w Watch并rebuild
--environment -e Build环境
--target -t Build target
--dev 表示dev env和target
--prod 表示prod env和target
Production Build.
先使用--aot:
![](https://img.php.cn/upload/article/000/061/021/190a4af6953bfb36ace1755a844eacae-10.png)
使用aot之后可以看到 vendor.bundle的大小降了很多, 只有1.5m左右了.
执行aot会去掉一些程序执行不需要的代码, 例如angular的compiler这时就不在build输出的文件里了(可以使用source-map-explorer查看).
试试生产环境:
![](https://img.php.cn/upload/article/000/061/021/190a4af6953bfb36ace1755a844eacae-11.png)
可以看到所有的文件都非常小了, 并且没有vendor了(因为prod下--build-optimizer起作用所以vendor没有了, 但可以使用--vendor-chunk true给弄出来).
Serve.
ng serve. 已经一直在用了, 下面看看它常用的参数:
--open -o 打开默认浏览器
--port -p 端口
--live-reload -lr 发生变化时重新加载网页(默认开启的)
--ssl 使用https
--proxy-config -pc 代理配置
--prod 在内存中serve 生产模式build的文件
试试 --prod:
![](https://img.php.cn/upload/article/000/061/021/bcafab983495158e634a706c8d8d3eb7-12.png)
通过文件大小可以看出确实是prod build的.
ng eject.
为项目生成webpack配置和脚本.
执行该命令试试:
![](https://img.php.cn/upload/article/000/061/021/bcafab983495158e634a706c8d8d3eb7-13.png)
看看有哪些变化:
.angular-cli.json:
![](https://img.php.cn/upload/article/000/061/021/bcafab983495158e634a706c8d8d3eb7-14.png)
package.json:
![](https://img.php.cn/upload/article/000/061/021/2a7ece9f88b7596afc09d8a49fb78ba8-15.png)
命令脚本都变了
![](https://img.php.cn/upload/article/000/061/021/2a7ece9f88b7596afc09d8a49fb78ba8-16.png)
还多出来一个webpack.config.js文件:
![](https://img.php.cn/upload/article/000/061/021/3b9a35b5ef14377649c5b259aee52b71-17.png)
为什么要这么做呢?
可以对项目更深入的配置....
这时运行程序就是 npm start了.
我还是把reject恢复回去吧, 使用git来恢复吧.
如果需要Serve 其他js/css/assets文件:
![](https://img.php.cn/upload/article/000/061/021/3b9a35b5ef14377649c5b259aee52b71-18.png)
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Angular CLI进行单元测试和E2E测试步骤详解
Vue中computed与methods使用区别
위 내용은 Angular CLI 구성 및 Serve 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!