рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдбреАрдмрдЧ рдХреЛрдгреАрдп рд╕реНрдХреИрдореИрдЯрд┐рдХреНрд╕

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╡реАрдПрд╕ рдХреЛрдб рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдВрджрд░ рд╕реЗ рдХреЛрдгреАрдп рдпреЛрдЬрдирд╛рдмрджреНрдз рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


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


рдбрд┐рдмрдЧрд┐рдВрдЧ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рднреА рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдФрд░ рдХрд╛ рдХреЛрдбред рдЬреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ 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 рдбреАрдмрдЧрд┐рдВрдЧ
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдбреАрдмрдЧрд┐рдВрдЧ


All Articles