Firebase Web – Zero to Hero parte 4

Bootstrap + Authentication

Authentication parte 3

Continuando o layout, adicionando o Bootstrap


Bootstrap, não acho que seja uma questão de gostar ou não gostar, muito antes pelo contrário

E por isso vamos instalar o bootstrap no nosso projeto, e para isso vamos usar a lib ngx-bootstrap, o comando agora é um pouco diferente, como o ngx-bootstrap provém schematics, isso é, ele atualiza o projeto aonde é necessário para seu funcionamento, no caso dele no package.json e no angular.json

Para maiores informações sobre schematics visite https://angular.io/guide/schematics-for-libraries

Bem, vamos nessa, no console digite: ng add ngx-bootstrap

ng add ngx-bootstrap
Installing packages for tooling via npm.
+ ngx-bootstrap@5.1.1
added 1 package from 1 contributor and audited 19330 packages in 8.565s
found 0 vulnerabilities

Installed packages for tooling via npm.
    ✅️ Added "bootstrap
    ✅️ Added "ngx-bootstrap
    🔍 Installing packages...
UPDATE package.json (1338 bytes)
UPDATE angular.json (4245 bytes)
UPDATE projects/principal/src/app/app.module.ts (567 bytes)
npm WARN bootstrap@4.1.1 requires a peer of jquery@1.9.1 - 3 but none is installed. You must install peer dependencies yourself.
npm WARN bootstrap@4.1.1 requires a peer of popper.js@^1.14.3 but none is installed. You must install peer dependencies yourself.

added 1 package from 2 contributors and audited 19331 packages in 7.409s
found 1 moderate severity vulnerability
  run `npm audit fix` to fix them, or `npm audit` for details

Agora temos algumas coisinhas a considerar, ele disse que adicionou o bootstrap 4, mas não a última versão por isso temos que instalá-la na “mão”👋 , e também diz que temos que instalar o jQuery e o popper, então vamos nessa.

npm i --save bootstrap@latest jquery popper.js
+ jquery@3.4.1
+ popper.js@1.15.0
+ bootstrap@4.3.1
added 2 packages from 3 contributors, updated 1 package and audited 19333 packages in 7.067s
found 0 vulnerabilities

O ng add ngx-bootstrap já adicionou algumas linhas automaticamente em angular.json

 "styles": [
 "./node_modules/bootstrap/dist/css/bootstrap.min.css",
 "./node_modules/ngx-bootstrap/datepicker/bs-datepicker.css",
 "projects/principal/src/styles.scss"
],
 "scripts": []

Porém o jQuery e o popper.js não tiveram essa regalia, então adicione essas linhas, são necessárias as animações do bootstrap

 "styles": [
 "./node_modules/bootstrap/dist/css/bootstrap.min.css",
 "./node_modules/ngx-bootstrap/datepicker/bs-datepicker.css",
 "projects/principal/src/styles.scss"
],
 "scripts": [
 "node_modules/jquery/dist/jquery.min.js",
 "node_modules/popper.js/dist/umd/popper.min.js",
 "node_modules/bootstrap/dist/js/bootstrap.min.js"
]

Como usamos o parâmetro –save as libs ficaram todas “salvas” dentro de dependencies do package.json
Não se preocupe, ainda teremos mais outras libs para colocarmos ai =D

  "dependencies": {
    "@angular/animations": "~8.1.2",
    "@angular/common": "~8.1.2",
    "@angular/compiler": "~8.1.2",
    "@angular/core": "~8.1.2",
    "@angular/forms": "~8.1.2",
    "@angular/platform-browser": "~8.1.2",
    "@angular/platform-browser-dynamic": "~8.1.2",
    "@angular/router": "~8.1.2",
    "bootstrap": "^4.3.1",
    "jquery": "^3.4.1",
    "ngx-bootstrap": "^5.1.1",
    "popper.js": "^1.15.0",
    "rxjs": "~6.4.0",
    "tslib": "^1.9.0",
    "zone.js": "~0.9.1"
  },

Vamos testar o boostrap, dentro do template html da component auth, o auth.component.html, adicione um div com as classes bootstrap alert alert-danger

<div class="auth-body">
  <div class="auth-content">
    <div>
      <h1 class="alert alert-danger">oi Bootstrap</h1>
    </div>
  </div>
</div>

ng serve… e oiii Bootstrap!!! Que lindo!!!!!!!!! 😍

Boostrap funcionando <3

Lembre sempre de deixar o console do navegador aberto para pegar os erros e alertas, isso é muito importante durante o desenvolvimento

Bom, no próximo artigo é hora de criar o formulário de email e senha =D, té mais!

1

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *