рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╡реАрдПрд╕ рдХреЛрдб рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдВрджрд░ рд╕реЗ рдХреЛрдгреАрдп рдпреЛрдЬрдирд╛рдмрджреНрдз рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рд╣рдорд╛рд░реЗ рдбреЗрд╡рд▓рдкрд░ рдХрд╛рд░реНрдп рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рд╣рдореЗрдВ рдЬрд▓реНрджреА рдкрддрд╛ рдЪрд▓ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдХреЛрдб рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдбрд┐рдмрдЧрд░ рдЪрд▓рд╛рдирд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╕рдордп рдХрд╛рдо рдХрд╛ рдореБрдЦреНрдп рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдбрд┐рдмрдЧрд┐рдВрдЧ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рднреА рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдФрд░ рдХрд╛ рдХреЛрдбред рдЬреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ schematics
ред рдХреЛрдгреАрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо schematics
рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ, рд╕реЗрд╡рд╛рдУрдВ, рдШрдЯрдХреЛрдВ рдЖрджрд┐ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реБрдП, рдХреЛрдгреАрдп рд╕реАрдПрд▓рдЖрдИ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ ред рдФрд░ рдпрд╣ рдордд рд╕реЛрдЪреЛ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд╛рдо рдХреЗ рд╕рд╛рд░ рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ schematics
рди рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдкреНрд░рддрд┐ рдкреНрд░рд╢рдВрд╕рд╛ рдХреА рднрд╛рд╡рдирд╛ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдпрд╣ рд╕рдм рдмрдирд╛рдпрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрдкрдиреА рдЦреБрдж рдХреА рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдмрдирд╛рдирд╛ рднреА рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо schematics
рдбрд┐рдмрдЧ рдХрд░рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗ , рдЕрд░реНрдерд╛рддред Visual Studio Code рдХреЛ node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдбреАрдмрдЧ рдХреА рдЧрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ
рд░рдирд┐рдВрдЧ рдПрдВрдЧреБрд▓рд░ рд╕реНрдХреАрдореИрдЯрд┐рдХ рдиреЛрдб.рдЬреЗрдПрд╕ рдкрд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ schematics
ред рдареАрдХ рд╣реИ, рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЙрдкрдХрд░рдг рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдорджрдж рд╕реЗ рдПрдХ рдпреЛрдЬрдирд╛рдмрджреНрдз рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВ schematic-cli
, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкреИрдХреЗрдЬ рд╣рдорд╛рд░реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рд╣рдордиреЗ рдЗрд╕реЗ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рд░рдЦрд╛
npm install -g @angular-devkit/schematics
npm install -g @angular-devkit/schematics-cli
рдпрд╣ рдЙрдкрдХрд░рдг рдЖрдкрдХреЛ рдирдИ рдпреЛрдЬрдирд╛рдмрджреНрдз рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдПрдХ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ schematics
ред
schematics
schematics [CollectionName:]SchematicName [options, ...]
By default, if the collection name is not specified, use the internal collection provided
by the Schematics CLI.
Options:
--debug Debug mode. This is true by default if the collection is a relative
path (in that case, turn off with --debug=false).
--allowPrivate Allow private schematics to be run from the command line. Default to
false.
--dry-run Do not output anything, but instead just show what actions would be
performed. Default to true if debug is also true.
--force Force overwriting files that would otherwise be an error.
--list-schematics List all schematics from the collection, by name. A collection name
should be suffixed by a colon. Example: '@schematics/schematics:'.
--verbose Show more information.
--help Show this message.
рдпрджрд┐ рдЖрдк рд╡рд┐рдХрд▓реНрдк рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, --list-schematics
рддреЛ рд╣рдо рдЖрдВрддрд░рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрдЦрддреЗ рд╣реИрдВ, рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред
schematics --list-schematics
blank
schematic
рдпрджрд┐ рдЖрдк рдЪреБрдирддреЗ рд╣реИрдВ schematic
- рдпрд╣ рддреАрди рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдореВрдирд╛ рд╕рдВрдЧреНрд░рд╣ рддреИрдпрд╛рд░ рдХрд░реЗрдЧрд╛ - рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
(рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдХрд╛рд▓реЗрдВ --dry-run
)
schematics schematic --name=schematics-debugged --dry-run
schematics . , , schematics ( ). , .
schematics
npm run build
npm run test
, schematics
node.js . , schematic , name .
<program> [arguments...]
VS Code launch.json
. . тАФ node.js - Launch Program
. node.js , .. schematics.js
@angular-devkit/schematics-cli
, bin.
@angular-devkit/schematics-cli
, . program
js . ${workspaceFolder}
, , .
npm install -D @angular-devkit/schematics-cli
:
type: node.
request: launch.
name: ,
program: , .. ${workspaceFolder}/node_modules/@angular-devkit/schematics-cli/bin/schematics.js
args: args
. , (package.json collection.json), , path, workspace.
outFiles: .
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/node_modules/@angular-devkit/schematics-cli/bin/schematics.js",
"args": [
".:my-full-schematic",
"--name=hello"
],
"outFiles": []
}
]
}
рд╡рд┐рдзрд┐ рдЦреЛрд▓реЗрдВ factory
ред рдЖрдорддреМрд░ рдкрд░ рд╡рд╣ рдЕрдВрджрд░ рд╣реИ index.ts
ред рдПрдХ рд╡рд┐рд░рд╛рдо рдмрд┐рдВрджреБ рдЬреЛрдбрд╝реЗрдВред
F5 рджрдмрд╛рдПрдВ, рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдкрд░ рд╢реБрд░реВ рдФрд░ рдмрдВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдм рдЖрдк рд╕рднреА рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ Schematics
рдпрд╛ рдкреЗрдбрд╝ рдХреЗ рдЕрдВрджрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреВрд░реЗ рдЖрдВрддрд░рд┐рдХ рд░рд╕реЛрдИрдШрд░ рдХрд╛ рдзреНрдпрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓реЗрдЦ рдкрд╕рдВрдж рдЖрдпрд╛, рддреЛ Angularlicious Podcast рдкреЙрдбрдХрд╛рд╕реНрдЯ рднреА рд╣реИрдВред
рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╛рдордЧреНрд░реА:
Node.js рдбреАрдмрдЧрд┐рдВрдЧ
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдбреАрдмрдЧрд┐рдВрдЧ