рдпрджрд┐ рдЖрдк рдлреНрд░рдВрдЯрдПрдВрдб рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд╕реЗ-рдПрди-рд╕реАрдиреНрд╕ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ: рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╢рд░реНрддреЗрдВ рддреЗрдЬреА рд╕реЗ рд╕рд┐рдХреБрдбрд╝ рд░рд╣реА рд╣реИрдВ, рдЖрдкрдХрд╛ рдкреНрд░рдмрдВрдзрди, рдпрд╛ рдЧреНрд░рд╛рд╣рдХ, рдпрд╛ рджреЛрдиреЛрдВ, рдПрдХ рд╕рд╛рде рдЕрдкрдиреА рдЖрдВрдЦреЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрднреА рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдлрд░реНрдЬреА рдбреЗрдЯрд╛ рд╕реЗ рднреАред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдПрдХ рдкреАрда рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреА рдПрдкреАрдЖрдИ рдкрд░рдд рд╣реИ рдЬреЛ рд╢рдмреНрдж рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдЧрд╛рдпрдм рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореБрдЭреЗ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдФрд░ рдореИрдВ рдХреЛрдгреАрдп рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдЖрд╕-рдкрд╛рд╕ рдХреБрд░реНрд╕рд┐рдпреЛрдВ рдкрд░ рдмреИрдареЗ рд▓реЛрдЧреЛрдВ рдиреЗ рд╕реБрд╕реНрдд рддрд░реАрдХреЗ рд╕реЗ, рдХрд┐рд╕реА рдиреЗ рд╕рдордЭрджрд╛рд░реА рд╕реЗ рд╕рд┐рд░ рд╣рд┐рд▓рд╛рдпрд╛)ред
рдЕрдм рдореИрдВ рдЗрд╕реЗ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдЖрдЬрдорд╛рдКрдВрдЧрд╛ред рдПрдХ рдУрд░, рд╕реНрдерд┐рддрд┐ рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХрдИ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрдИ рд╕рдорд╛рдзрд╛рди рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдП:
- рд╣рд╛рд░реНрдбрдХреЛрдб рдШрдЯрдХ-рд╕реНрддрд░реАрдп рдбреЗрдЯрд╛
- рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕реНрддрд░ рдкрд░ рд╣рд╛рд░реНрдбрдХреЛрдб рдбреЗрдЯрд╛, рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХ рдорд╛рд░реНрдЧреЛрдВ рдкрд░ рдкрд┐рди рдХрд░реЗрдВ
- рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рд╕реНрддрд░ рдкрд░ рд╣рд╛рд░реНрдбрдХреЛрдб рдбреЗрдЯрд╛
- рдлреНрд▓рд╢ рдЖрдкреА, рдФрд░, рд╕рд╣рдордд рдЕрдиреБрдмрдВрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рд╛рд░реНрдбрдХреЛрдб рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдВ
рд▓реЗрдХрд┐рди рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк рдПрдХ рдЕрдЯреВрдЯ рдмреИрд╕рд╛рдЦреА рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдорд┐рдпрд╛рдВ рдереАрдВред
- рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рддреБрд░рдВрдд рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ - рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЕрдкреНрд░рдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди, рдЬреИрд╕рд╛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреА рд╣реИ, рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
- рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдШрдЯрдХреЛрдВ рдХреЗ рддрд░реНрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
- рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк, рдЖрдк рдПрдХ рд╕рд░реНрд╡рд░ рдХреЙрд▓ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдХреЗ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдЯрдм рдбреЗрдЯрд╛ рднреА рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдорд╕реНрдпрд╛ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдорд╛рд░реЗ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ (рдпрджрд┐ рд╡реЗ рдореМрдЬреВрдж рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдореМрдЬреВрдж рд╣реИрдВ) рдХрд╛рдо рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдо рдХреА рдирдХрд▓ рд╕рдорд░реНрдерди рдЕрдзреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- рдкрд┐рдЫрд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдХрд╛рдлреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдЬреЛ рдкрд┐рдЫрд▓реЗ рд╡рд┐рдХрд▓реНрдк рдереЗ, рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рд░рд╣рд┐рдд рдереЗ, рд▓реЗрдХрд┐рди рдореИрдВ рд╣рд╛рдИрдЬреЗрдирд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдмреИрдХрдПрдВрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣рд╛рд░реНрдбрдХреЛрдб рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдирддреАрдЬрддрди, рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ рдЧрдпрд╛: рдПрдХ рдЕрд▓рдЧ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдорд╛рд░реНрдЧреЛрдВ рдФрд░ рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛, рдФрд░ рдХреЛрдгреАрдп рдХреЗ рд╕рдВрдпреЛрдЬрди рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред рдпрд╣ рджреЛрдиреЛрдВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ред
рдореЙрдХ рд╕рд░реНрд╡рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЪрд▓реЛ рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдЙрд╕ рдЬрдЧрд╣ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо msk рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдирдЬреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдореЙрдХ-рд╕рд░реНрд╡рд░ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
npm init
npm install --save express
рдЕрдЧрд▓рд╛, рдПрдХ рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛ред рд╣рдо index.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╣рдо рдкрд╣рд▓реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдХреЛрдб рд▓реЗрддреЗ рд╣реИрдВред
const express = require("express"); const app = express(); app.get("/url", (req, res, next) => { res.json(["Tony", "Lisa", "Michael", "Ginger", "Food"]); }); app.listen(3000, () => { console.log("Server running on port 3000"); });
рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВ
node index.js
рдбрд╛рдХрд┐рдпрд╛ рд╕реЗ рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

рд╕рдм рдХреБрдЫ рд╕реБрдкрд░ рд╣реИ, рд╕рд░реНрд╡рд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрдм рд╣рдо рдХрд┐рд╕реА рдПрдХ рдорд╛рд░реНрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреАрдЖрдИ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдореЗрдВ рд╕рднреА рдкреБрд╕реНрддрдХреЛрдВ рдХреА рд╕реВрдЪреА рдЪрд╛рд╣рд┐рдП, рдкреБрд╕реНрддрдХреЛрдВ рдХреЗ рд╕рд╛рде books.json рдлрд╝рд╛рдЗрд▓ рднрд░реЗрдВ
[ { "rn": 0, "id": "0", "name": "Jungle", "type": 0, "wells": 10042, "default": false, "hidden": false, "author": "Admin" }, { "rn": 1, "id": "1", "name": "Main", "type": 1, "wells": 156, "default": true, "hidden": false, "author": "User" } ]
рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:
const express = require("express"); const app = express(); app.get("/api/book/", (req, res, next) => { const books = require('./books'); res.json(books); }); app.listen(3000, () => { console.log("Server running on port 3000"); });
рдФрд░ рдЬрд╛рдВрдЪреЗрдВ:

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ред
рдЕрдм рдХреЛрдгреАрдп рдРрдк рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдкрддреЗ рдХреЛ рд╡рд╛рдкрд╕ рд╡рд╛рддрд╛рд╡рд░рдг / рд╡рд╛рддрд╛рд╡рд░рдг * .ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
environment.ts:
export const environment = { production: false, backend: 'http://localhost:5000/' }
environment.prod.ts
export const environment = { production: true, backend: 'http://localhost:5000/' }
рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ, рдФрд░ рдареЗрд╕ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдореЗрдВ, рд╣рдо рдкреЛрд░реНрдЯ 5000 рдкрд░ .net рдХреЛрд░ рдПрдкреАрдЖрдИ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВрдЧреЗ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИред рдЕрдЧрд▓рд╛, рд╣рдо рдЕрд╕реНрдерд╛рдпреА рдмреИрдХ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ
environment.mock.ts
export const environment = { production: false, backend: 'http://localhost:3000/' }
рдпрд╣рд╛рдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдкреЛрд░реНрдЯ 3000 рдкрд░ рдПрдкреАрдЖрдИ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╣рдо рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдЪрд▓рд╛рдПрдВрдЧреЗред
рдЕрдм рд╣рдореЗрдВ рдПрдХ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд╛рдкрд╕ рдХреЙрд▓ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред
@Injectable() export class RequestInterceptor implements HttpInterceptor { baseUrl: string; constructor() { this.baseUrl = environment.backend; } intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { return next.handle(this.modifyRequest(req)); } private modifyRequest = (req: HttpRequest<any>): HttpRequest<any> => { if (req.url.startsWith('api/')) { const url = this.baseUrl; req = req.clone({ url: url + req.url }); } return req; } }
рдпрд╣ рдореЙрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреЗ рдФрд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ angular.json рдХреЛ рдереЛрдбрд╝рд╛ рдореЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯ / рдмрд┐рд▓реНрдб / рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдПрдХ рдирдпрд╛ рдореЙрдХ рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред рд╕реЗрд╡рд╛ рдореЛрдб рдХреЗ рд▓рд┐рдП, рдПрдХ рдореЙрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдмрд┐рд▓реНрдб рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "your-project": { /*****/ "architect": { "build": { /*****/ "configurations": { "production": { /*****/ }, "mock": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.mock.ts" } ] } } }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", "options": { "browserTarget": "your-project:build" }, "configurations": { "production": { "browserTarget": "your-project:build:production" }, "mock": { "browserTarget": "your-project:build:mock" } } } }, /*****/ } } }
рдпрд╣ рд╕рдм рд╣реИ, рдЕрдм рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ
ng serve --configuration=mock
рдФрд░ рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреЙрд▓ рдмреИрдХ рдмреИрдХ рдлреНрд▓рд╛рдИ рдХрд╣рд╛рдВ рд╣реИ:

рд╕рдм рдХреБрдЫ рдорд╣рд╛рди рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рдЕрднреА рднреА рд╣рдореЗрдВ рдмрд╣реБрдд рдорджрдж рдХрд░реЗрдЧрд╛ рдЬрдм рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХреАрдХрд░рдг рдФрд░ e2e рдкрд░реАрдХреНрд╖рдг рдХреЛ рдХрд╕рддреЗ рд╣реИрдВред рдореИрдВ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред