рдХреЛрдгреАрдп 6 рд╡рд╕реНрддреБрддрдГ рдХреБрдЫ рдЖрджреЗрд╢реЛрдВ рдореЗрдВ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ (PWA) рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкреГрд╖реНрдареЛрдВ, рддрд╛рд▓рд┐рдХрд╛рдУрдВ, рдбреИрд╢рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рддрд╛ рд╣реИред

рд╣рдореЗрдВ рдХреЛрдгреАрдп-рдХреНрд▓реА рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ 6.0.0 рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ:
ng --version
рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
npm i -g @angular/cli
рд╣рдо рдпрд╣ рд╕рдм рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдгреАрдп-рдХреНрд▓реА 6 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЕрдВрддрд░ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рднреА рдЕрдВрддрд░ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓реЛрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рднреА рд╣реИ:
ng new angular-pwa-ci --routing
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реА рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░реЗрдВрдЧреЗред
git init git add . git commit -m "Initial commit"
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреАрдо рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ (PWA) рдореЗрдВ рдмрджрд▓ рджреЗрдЧреА
ng add @angular/pwa --project "angular-pwa-ci"
рдХрдорд╛рдВрдб рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЬрд╛рд░реА рдХрд░рдиреЗ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ Installed packages for tooling via yarn. CREATE ngsw-config.json (392 bytes) CREATE src/assets/icons/icon-128x128.png (1253 bytes) CREATE src/assets/icons/icon-144x144.png (1394 bytes) CREATE src/assets/icons/icon-152x152.png (1427 bytes) CREATE src/assets/icons/icon-192x192.png (1790 bytes) CREATE src/assets/icons/icon-384x384.png (3557 bytes) CREATE src/assets/icons/icon-512x512.png (5008 bytes) CREATE src/assets/icons/icon-72x72.png (792 bytes) CREATE src/assets/icons/icon-96x96.png (958 bytes) CREATE src/manifest.json (1085 bytes) UPDATE angular.json (3571 bytes) UPDATE package.json (1389 bytes) UPDATE src/app/app.module.ts (605 bytes) UPDATE src/index.html (390 bytes)
рдЪрд▓реЛ рдПрдХ рдФрд░ рдХрдорд┐рдЯ рдХрд░рддреЗ рд╣реИрдВред
рдФрд░ рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЬрд▓реНрджреА рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдЕрдм PWA рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо lighthouse
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХрд╛ рд▓реЗрдЦрд╛-рдЬреЛрдЦрд╛ рдХрд░реЗрдЧреА рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдЧреАред
рдпрджрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдХрдорд╛рдВрдб рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
npm i -g lighthouse
рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдпрд╣ рднреА рдЬрд╛рдВрдЪреЗрдЧреА рдХрд┐ рдХреНрдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд▓рд╛рдЗрди рдХреЗ src/index.html
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ
<noscript>Please enable JavaScript to continue using this application.</noscript>
рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ production
рдореЛрдб рдореЗрдВ рдмрдирд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлреЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рд░реНрд╡рд┐рд╕ рд╡рд░реНрдХрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ production
рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддреА рд╣реИрдВред
ng build --prod
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдмрд╛рдж рдореЗрдВ, рдлрд╛рдпрд░рдмреЗрд╕ рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдореБрдлреНрдд рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдСрдЯреЛ-рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдЕрдм рд▓рд┐рдЦреЗрдВрдЧреЗред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ server.js
рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ
рдпрджрд┐ рдЖрдк рдПрдХ рд╕рдВрдкрд╛рджрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдХреЛрдгреАрдп рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдгреАрдп v6 рд╕реНрдирд┐рдкреЗрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИ , рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
ex-node-

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реНрдирд┐рдкреЗрдЯ рд╕реЗ рд╕рд╣рдордд, рд╡рд╛рдВрдЫрд┐рдд рдкреЛрд░реНрдЯ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред рдФрд░ рд╡рд╣ рд╕рдм рд╣реИред рдЖрдк рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
node server.js
рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ: http://localhost:8080
рдФрд░ рд╣рдо рдСрдбрд┐рдЯ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
lighthouse http://localhost:8080
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдореВрд▓ рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдЧреА, рдЬреЛ localhost_2018-06-08_23-42-21.report.html
. localhost_2018-06-08_23-42-21.report.html
ред рдЗрд╕реЗ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЦреЛрд▓реЗрдВ рдФрд░ рдСрдбрд┐рдЯ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВред рд╣рдордиреЗ 100% рд╕реНрдХреЛрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЖрдЧреЗ рд░рд╣реЗред
рдлрд╛рдпрд░рдмреЗрд╕ рдкрд░ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдСрдЯреЛ-рдбрдВрдк рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ http://firebase.com рдкрд░ рдПрдХ рдЦрд╛рддреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЗрд╕рдХреЗ рдмрд╛рдж firebase-tools
рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рд╣рдо рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдЯреЛ-рдбрд┐рдкреНрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
npm i -D firebase-tools
рдФрд░ рд╣рд░ рдмрд╛рд░ рдПрдХ рд▓рдВрдмрд╛ рд░рд╛рд╕реНрддрд╛ node_models/firebase-tools/bin/firebase
рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ - рд╣рдо рдЗрд╕реЗ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред
npm i -g firebase-tools
рдлрд╛рдпрд░рдмреЗрд╕ рд╕реЗрд╡рд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВ:
firebase login
рдпрд╣ рдХрдорд╛рдВрдб рдкреГрд╖реНрда рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЦреЛрд▓рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧреА рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЖрд╡реЗрджрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рд╕рд╣рдордд рд╣реИрдВред рдЖрдк рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ Firebase рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╣реА рд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП https://console.firebase.google.com
рдкрд░ https://console.firebase.google.com
рдФрд░ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕реЗ рд╣рдо angular-pwa-ci
ред
рдЕрдЧрд▓реА рдХрдорд╛рдВрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдПрдЧреАред
./node_modules/firebase-tools/bin/firebase init
рдпрд╣ рдХрдорд╛рдВрдб рдПрдХ рд╕рдВрд╡рд╛рдж рд▓рд╛рдПрдЧрд╛ рдЬрд╣рд╛рдВ рд╣рдо:
angular-pwa-ci
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреБрдиреЗрдВ;- рд╣рдо рдХреЗрд╡рд▓
hosting
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ; - рд╣рдо
dist/angular-pwa-ci/
рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП dist/angular-pwa-ci/
рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ dist/angular-pwa-ci/
рдирд┐рд░реНрджрд┐рд╖реНрдЯ dist/angular-pwa-ci/
; - рдПрд╕рдкреАрдП рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (index.html рдХреЗ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВ);
- index.html рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдордирд╛ рдХрд░реЗрдВред
рдЕрдм рд╣рдо рдореИрдиреБрдЕрд▓ рдореЛрдб рдореЗрдВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рдХрд░реЗрдВрдЧреЗ
./node_modules/firebase-tools/bin/firebase deploy --only hosting
рдЗрд╕ рдЖрджреЗрд╢ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдореЗрдВ, рдЬрд╣рд╛рдВ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛, рдЙрд╕рдХрд╛ рдкрддрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, https://angular-pwa-ci.firebaseapp.com
ред
рдФрд░ рдЕрдм рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХрд╛ рдСрдбрд┐рдЯ рдХрд░реЗрдВрдЧреЗред
lighthouse https://angular-pwa-ci.firebaseapp.com

рдпрд╣рд╛рдВ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди PWA 100% рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓
рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕реА рд╕рдордп, рд╣рдо рдХреЛрдгреАрдп 6 рдХреА рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдЦреЛрдЬ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп / рд╕рд╛рдордЧреНрд░реА рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реЗрдВред
ng add @angular/material@6.2.1 @angular/cdk
UPD: рд╣рдо рдХреЛрдгреАрдп / рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд┐рдЫрд▓реЗ 6.3 рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИред
рдЕрдм рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкреЗрдЬ рдмрдирд╛рдПрдВ
ng g @angular/material:material-nav --name=nav -m app
рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред
// src/app/app.component.html <app-nav></app-nav>
// src/app/nav/nav.component.ts @Component({ - selector: 'nav', + selector: 'app-nav', templateUrl: './nav.component.html', styleUrls: ['./nav.component.css'] })
рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдБ
ng gm table --routing
рдирд┐рд░реНрдорд┐рдд table
рдореЙрдбреНрдпреВрд▓ рдореЗрдВ, рддреИрдпрд╛рд░ рдорд╛рд░реНрдХрдЕрдк рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдШрдЯрдХ рдмрдирд╛рдПрдВред
ng g @angular/material:material-nav --name=table --flat=table -m table
// src/app/app-routing.module.ts -const routes: Routes = []; +const routes: Routes = [ + { + path: 'table', + loadChildren: './table/table.module#TableModule' + }, + { + path: '', + redirectTo: '', + pathMatch: 'full' + } +];
// src/app/table/table-routing.module.ts -const routes: Routes = []; +const routes: Routes = [ + { + path: '', + component: TableComponent + } +];
routerLink
рд▓рд┐рдВрдХ рдХреЛ routerLink
рдФрд░ router-outlet
рдЬреЛрдбрд╝реЗрдВ
// src/app/app.component.html <mat-toolbar color="primary">Menu</mat-toolbar> <mat-nav-list> - <a mat-list-item href="#">Link 1</a> + <a mat-list-item routerLink="/table">Table</a> <a mat-list-item href="#">Link 2</a> <a mat-list-item href="#">Link 3</a> </mat-nav-list> @@ -25,5 +25,6 @@ </button> <span>Application Title</span> </mat-toolbar> + <router-outlet></router-outlet> </mat-sidenav-content> </mat-sidenav-container>
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ ng serve
рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рдПрдВред рдзреНрдпрд╛рди рджреЛред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рдЗрд╕ рдореЛрдб рдореЗрдВ рдереЗ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЯреИрдм рдкрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкреИрдирд▓ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╕рдордп, рд╣рдорд╛рд░рд╛ рдЯреЗрдмрд▓ рдореЙрдбреНрдпреВрд▓ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред

рдбреИрд╢рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдШрдЯрдХ рдмрдирд╛рддреЗ рд╣реИрдВ
ng gm dashboard --routing ng g @angular/material:material-dashboard --flat=dashboard --name=dashboard -m dashboard
рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд░рд┐рдпрд╛рдПрдВ рдЯреЗрдмрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред
рдирддреАрдЬрддрди, рд╣рдореЗрдВ рджреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдПрдХ PWA рдЖрд╡реЗрджрди рдорд┐рд▓рддрд╛ рд╣реИред
рдпрд╣ рдлрд╛рдпрд░рдмреЗрд╕ рдкрд░ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреА рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддреИрдирд╛рддреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдлрд╛рдпрд░рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕реА.рдбреА.
рд╣рдореЗрдВ https://travis-ci.org рдкрд░ рдПрдХ рдЦрд╛рддреЗ рдФрд░ https://github.com рдкрд░ рдПрдХ рдЦрд╛рддреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЪрд▓рд┐рдП angular-pwa-ci
рдореЗрдВ angular-pwa-ci
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдХреЛрдб angular-pwa-ci
git remote add https://github.com/< >/angular-pwa-ci.git git push -u origin master
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ angular-pws-ci
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА angular-pws-ci
рд╕реЗрд╡рд╛ рд╕реЗ рдЬреЛрдбрд╝реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреГрд╖реНрда https://travis-ci.org/profile/
рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рд╕реВрдЪреА рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рд╣рдо angular-pwa-ci
рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ

рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
firebase login:ci
рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдореЗрдВ рдХреБрдВрдЬреА рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧреАред рдЗрд╕рдХреЗ рдорд╛рди рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ FIREBASE_TOKEN рдирд╛рдо рдХреЗ рдЯреНрд░реИрд╡рд┐рд╕-рд╕реАрдЖрдИ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

рдпрд╣ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ .travis.yml рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ
language: node_js node_js: - "node" before_script: - npm i -g firebase-tools script: - npm install - npm run build - firebase use --token $FIREBASE_TOKEN angular-pwa-ci - firebase deploy -m "build $TRAVIS_BUILD_ID" --non-interactive --token $FIREBASE_TOKEN cache: directories: - "node_modules"
рд╣рдо рдХрдорд┐рдЯ рдХрд░реЗрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдХреЛ рдЬрд┐рдареВрдм рдХреЗ рдкрд╛рд╕ рднреЗрдЬреЗрдВред рдирддреАрдЬрддрди, рдЯреНрд░рд┐рдЧрд░ рдореЗрдВ рдЖрдЧ рд▓рдЧ рдЬрд╛рдПрдЧреА, рдЬреЛ рдЯреНрд░реИрд╡рд┐рд╕-рд╕реАрдЖрдИ рдкрд░ рдХрд╛рдо рдХрд╛ рд╢реБрднрд╛рд░рдВрдн рдХрд░реЗрдЧреАред рдЕрдВрдд рдореЗрдВ, рдлрд╛рдпрд░рдмреЗрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЛрд░реНрд╕ рдХреЛрдб рдЙрдкрд▓рдмреНрдз рд╣реИ
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЗрдореЛ
рдЖрдк рдХреЛрдб рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ