Gerando o Build do Projeto Angular
No tema anterior, criamos o primeiro projeto simples:
helloapp/ |-- angular.json |-- package.json |-- tsconfig.json |-- src/ |-- index.html |-- main.ts |-- app/ |-- app.component.ts
Como podemos obter os arquivos que realmente representam a aplicação e que podemos hospedar em algum servidor? Para isso, precisamos gerar o build do projeto.
No tema anterior, definimos o seguinte arquivo angular.json
{
"version": 1,
"projects": {
"helloapp": {
"projectType": "application",
"root": "",
"sourceRoot": "src",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/helloapp",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": ["zone.js"],
"tsConfig": "tsconfig.json",
"aot": true
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"buildTarget": "helloapp:build"
}
}
}
}
}
}
A seção "build"
"ng build"
"outputPath"
Podemos então inserir o comando ng build
C:\angular\helloapp>ng build ✔ Browser application bundle generation complete. ✔ Index html generation complete. Initial chunk files | Names | Raw size | Estimated transfer size main.js | main | 131.64 kB | 37.34 kB polyfills.js | polyfills | 34.80 kB | 11.31 kB runtime.js | runtime | 894 bytes | 507 bytes | Initial total | 167.34 kB | 49.16 kB Build at: 2024-08-25T18:17:23.192Z - Hash: bbdae8f2c8b17218 - Time: 11927ms
Após a execução desse comando, será criada uma pasta dist/helloapp
dist/ |-- helloapp/ |-- 3rdpartylicenses.txt |-- index.html |-- main.js |-- polyfills.js |-- runtime.js
Configurando o Build do Projeto
Por padrão, o Angular CLI utiliza uma série de configurações ao gerar o build do projeto. Por exemplo, os arquivos são compilados no modo de produção, ou seja, prontos para serem implantados. No entanto, também podemos definir explicitamente todas as configurações do build do projeto. Vamos alterar o arquivo angular.json
{
"version": 1,
"projects": {
"helloapp": {
"projectType": "application",
"root": "",
"sourceRoot": "src",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/helloapp",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": ["zone.js"],
"tsConfig": "tsconfig.json",
"aot": true
},
"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"vendorChunk": false,
"buildOptimizer": true
},
"development": {
"optimization": false,
"sourceMap": true
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"buildTarget": "helloapp:build"
}
}
}
}
}
}
Agora adicionamos uma subseção "configurations"
"build"
"production"
"development"
: indica se a otimização será aplicada.optimization
: define se um valor hash será adicionado ao nome dos arquivos gerados. O valor "all" indica que um hash será adicionado aos nomes de todos os arquivos gerados.outputHashing
: define se os arquivos de mapa de origem (source map) serão gerados.sourceMap
: define se os arquivos nomeados para chunks carregados serão utilizados.namedChunks
: define se será criado um arquivo separado para bibliotecas de terceiros usadas na aplicação.vendorChunk
: ativa o pacotebuildOptimizer
para otimização ao usar a opção@angular-devkit/build-optimizer
.aot
É importante notar que essas configurações não afetam o processo de desenvolvimento da aplicação, mas apenas o build da aplicação.
Agora vamos usar a configuração de produção para gerar o build do projeto. Para isso, passamos o parâmetro --configuration production
build
C:\angular\helloapp>ng build --configuration production
Após isso, veremos na pasta dist/helloapp
angular.json