@angular-devkit/schematics
TypeScript icon, indicating that this package has built-in type declarations

20.0.1 • Public • Published

Schematics

A scaffolding library for the modern web.

Description

Schematics are generators that transform an existing filesystem. They can create files, refactor existing files, or move files around.

What distinguishes Schematics from other generators, such as Yeoman or Yarn Create, is that schematics are purely descriptive; no changes are applied to the actual filesystem until everything is ready to be committed. There is no side effect, by design, in Schematics.

Glossary

Term Description
Schematics A generator that executes descriptive code without side effects on an existing file system.
Collection A list of schematics metadata. Schematics can be referred by name inside a collection.
Tool The code using the Schematics library.
Tree A staging area for changes, containing the original file system, and a list of changes to apply to it.
Rule A function that applies actions to a Tree. It returns a new Tree that will contain all transformations to be applied.
Source A function that creates an entirely new Tree from an empty filesystem. For example, a file source could read files from disk and create a Create Action for each of those.
Action An atomic operation to be validated and committed to a filesystem or a Tree. Actions are created by schematics.
Sink The final destination of all Actions.
Task A Task is a way to execute an external command or script in a schematic. A Task can be used to perform actions such as installing dependencies, running tests, or building a project. A Task is created by using the SchematicContext object and can be scheduled to run before or after the schematic Tree is applied.

Tooling

Schematics is a library, and does not work by itself. A reference CLI is available on this repository, and is published on NPM at @angular-devkit/schematics-cli. This document explains the library usage and the tooling API, but does not go into the tool implementation itself.

The tooling is responsible for the following tasks:

  1. Create the Schematic Engine, and pass in a Collection and Schematic loader.
  2. Understand and respect the Schematics metadata and dependencies between collections. Schematics can refer to dependencies, and it's the responsibility of the tool to honor those dependencies. The reference CLI uses NPM packages for its collections.
  3. Create the Options object. Options can be anything, but the schematics can specify a JSON Schema that should be respected. The reference CLI, for example, parses the arguments as a JSON object and validates it with the Schema specified by the collection.
  4. Schematics provides some JSON Schema formats for validation that tooling should add. These validate paths, html selectors and app names. Please check the reference CLI for how these can be added.
  5. Call the schematics with the original Tree. The tree should represent the initial state of the filesystem. The reference CLI uses the current directory for this.
  6. Create a Sink and commit the result of the schematics to the Sink. Many sinks are provided by the library; FileSystemSink and DryRunSink are examples.
  7. Output any logs propagated by the library, including debugging information.

The tooling API is composed of the following pieces:

Engine

The SchematicEngine is responsible for loading and constructing Collections and Schematics. When creating an engine, the tooling provides an EngineHost interface that understands how to create a CollectionDescription from a name, and how to create a SchematicDescription.

Schematics (Generators)

Schematics are generators and part of a Collection.

Collection

A Collection is defined by a collection.json file (in the reference CLI). This JSON defines the following properties:

Prop Name Type Description
name string The name of the collection.
version string Unused field.

Schematic

Operators, Sources and Rules

A Source is a generator of a Tree; it creates an entirely new root tree from nothing. A Rule is a transformation from one Tree to another. A Schematic (at the root) is a Rule that is normally applied on the filesystem.

Operators

FileOperators apply changes to a single FileEntry and return a new FileEntry. The result follows these rules:

  1. If the FileEntry returned is null, a DeleteAction will be added to the action list.
  2. If the path changed, a RenameAction will be added to the action list.
  3. If the content changed, an OverwriteAction will be added to the action list.

It is impossible to create files using a FileOperator.

Provided Operators

The Schematics library provides multiple Operator factories by default that cover basic use cases:

FileOperator Description
contentTemplate<T>(options: T) Apply a content template (see the Templating section)
pathTemplate<T>(options: T) Apply a path template (see the Templating section)

Provided Sources

The Schematics library additionally provides multiple Source factories by default:

Source Description
empty() Creates a source that returns an empty Tree.
source(tree: Tree) Creates a Source that returns the Tree passed in as argument.
url(url: string) Loads a list of files from the given URL and returns a Tree with the files as CreateAction applied to an empty Tree.
apply(source: Source, rules: Rule[]) Apply a list of Rules to a source, and return the resulting Source.

Provided Rules

The schematics library also provides Rule factories by default:

Rule Description
noop() Returns the input Tree as is.
chain(rules: Rule[]) Returns a Rule that's the concatenation of other Rules.
forEach(op: FileOperator) Returns a Rule that applies an operator to every file of the input Tree.
move(root: string) Moves all the files from the input to a subdirectory.
merge(other: Tree) Merge the input Tree with the other Tree.
contentTemplate<T>(options: T) Apply a content template (see the Template section) to the entire Tree.
pathTemplate<T>(options: T) Apply a path template (see the Template section) to the entire Tree.
template<T>(options: T) Apply both path and content templates (see the Template section) to the entire Tree.
filter(predicate: FilePredicate<boolean>) Returns the input Tree with files that do not pass the FilePredicate.

Templating

As referenced above, some functions are based upon a file templating system, which consists of path and content templating.

The system operates on placeholders defined inside files or their paths as loaded in the Tree and fills these in as defined in the following, using values passed into the Rule which applies the templating (i.e. template<T>(options: T)).

Path Templating

Placeholder Description
__variable__ Replaced with the value of variable.
__variable@function__ Replaced with the result of the call function(variable). Can be chained to the left (__variable@function1@function2__ etc).

Content Templating

Placeholder Description
<%= expression %> Replaced with the result of the call of the given expression. This only supports direct expressions, no structural (for/if/...) JavaScript.
<%- expression %> Same as above, but the value of the result will be escaped for HTML when inserted (i.e. replacing '<' with '&lt;')
<% inline code %> Inserts the given code into the template structure, allowing to insert structural JavaScript.
<%# text %> A comment, which gets entirely dropped.

Examples

Simple

An example of a simple Schematics which creates a "hello world" file, using an option to determine its path:

import { Tree } from '@angular-devkit/schematics';

export default function MySchematic(options: any) {
  return (tree: Tree) => {
    tree.create(options.path + '/hi', 'Hello world!');
    return tree;
  };
}

A few things from this example:

  1. The function receives the list of options from the tooling.
  2. It returns a Rule, which is a transformation from a Tree to another Tree.

Templating

A simplified example of a Schematics which creates a file containing a new Class, using an option to determine its name:

// files/__name@dasherize__.ts

export class <%= classify(name) %> {
}
// index.ts

import { strings } from '@angular-devkit/core';
import {
  Rule,
  SchematicContext,
  SchematicsException,
  Tree,
  apply,
  branchAndMerge,
  mergeWith,
  template,
  url,
} from '@angular-devkit/schematics';
import { Schema as ClassOptions } from './schema';

export default function (options: ClassOptions): Rule {
  return (tree: Tree, context: SchematicContext) => {
    if (!options.name) {
      throw new SchematicsException('Option (name) is required.');
    }

    const templateSource = apply(url('./files'), [
      template({
        ...strings,
        ...options,
      }),
    ]);

    return branchAndMerge(mergeWith(templateSource));
  };
}

Additional things from this example:

  1. strings provides the used dasherize and classify functions, among others.
  2. The files are on-disk in the same root directory as the index.ts and loaded into a Tree.
  3. Then the template Rule fills in the specified templating placeholders. For this, it only knows about the variables and functions passed to it via the options-object.
  4. Finally, the resulting Tree, containing the new file, is merged with the existing files of the project which the Schematic is run on.

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
19.2.14375,333v19-lts
18.2.19209,027v18-lts
20.0.1204,044latest
16.2.16136,978v16-lts
13.3.11136,538v13-lts
17.3.17133,361v17-lts
15.2.11114,355v15-lts
12.2.1897,660v12-lts
14.2.1395,414v14-lts
8.3.2956,444v8-lts
7.3.1030,249v7-lts
11.2.1924,693v11-lts
10.2.416,168v10-lts
9.1.1514,815v9-lts
0.8.95,664v6-lts
20.1.0-next.02,871next

Version History

VersionDownloads (Last 7 Days)Published
20.1.0-next.02,871
20.0.1204,044
20.0.0130,163
19.2.14375,333
20.0.0-rc.4120
20.0.0-rc.38,213
19.2.13100,784
20.0.0-rc.2699
20.0.0-rc.1416
19.2.1269,586
20.0.0-rc.0285
19.2.1154,579
20.0.0-next.9275
19.2.1034,275
17.3.17133,361
20.0.0-next.8236
20.0.0-next.71
19.2.972,139
18.2.19209,027
20.0.0-next.61
19.2.8681,839
20.0.0-next.5212
19.2.763,809
18.2.1829,701
17.3.1623,322
20.0.0-next.473
19.2.6740,581
18.2.1713,142
17.3.155,690
20.0.0-next.3126
19.2.551,335
18.2.1612,174
17.3.148,645
20.0.0-next.244
19.2.434,520
17.3.139,768
19.2.345,006
18.2.1526,596
20.0.0-next.14
19.2.25,097
20.0.0-next.071
19.2.147,449
19.2.0125,870
19.1.921,383
19.2.0-rc.03
19.1.8117,312
19.2.0-next.28
19.1.784,527
17.3.1226,959
19.1.625,256
19.2.0-next.19
19.1.524,146
18.2.1484,014
18.2.137,560
19.2.0-next.01
19.1.419,334
19.1.341,602
19.1.212,301
19.1.16,972
19.1.01,993
19.1.0-rc.05
19.0.741,001
19.1.0-next.211
19.0.634,583
19.1.0-next.13
19.0.510,225
19.0.413,595
19.1.0-next.054
19.0.32,599
19.0.26,978
19.0.153,954
19.0.04,450
19.0.0-rc.34
19.0.0-rc.21
18.2.12165,395
19.0.0-rc.110
19.0.0-rc.07
18.2.1129,901
19.0.0-next.131
18.2.1012,674
17.3.111,080,817
19.0.0-next.121
19.0.0-next.1115
18.2.943,976
19.0.0-next.101
18.2.8234,325
19.0.0-next.92
18.2.719,227
19.0.0-next.81
18.2.612,041
17.3.1042,726
19.0.0-next.71
18.2.516,959
16.2.16136,978
19.0.0-next.63
19.0.0-next.51
19.0.0-next.41
18.2.413,307
19.0.0-next.352
18.2.312,457
17.3.934,194
16.2.155,170
18.2.25,422
19.0.0-next.22
19.0.0-next.11
18.2.155,332
19.0.0-next.05
18.2.013,330
18.2.0-rc.01
18.1.439,624
18.2.0-next.32
18.1.316,000
18.2.0-next.240
18.1.211,016
18.2.0-next.11
18.1.15,473
18.2.0-next.01
18.1.08,217
18.1.0-rc.11
18.0.713,789
18.1.0-rc.01
18.0.65,889
18.1.0-next.31
18.0.54,803
18.1.0-next.21
18.0.44,416
18.1.0-next.19
18.0.33,726
18.1.0-next.08
18.0.26,616
18.0.153,410
18.0.01,563
17.3.8465,536
18.0.0-rc.314
18.0.0-rc.24
17.3.713,456
18.0.0-rc.14
18.0.0-rc.01
18.0.0-next.57
18.0.0-next.41
17.3.610,872
18.0.0-next.332
17.3.517,298
17.3.46,309
16.2.1452,396
18.0.0-next.24
17.3.37,498
18.0.0-next.11
17.3.27,892
16.2.133,740
15.2.11114,355
18.0.0-next.01
17.3.13,604
17.3.08,579
17.3.0-rc.053
17.2.316,531
17.2.25,292
17.2.14,798
17.2.07,676
17.1.412,182
17.2.0-rc.02
17.1.33,360
17.2.0-next.12
17.1.2233,022
17.2.0-next.01
17.1.14,412
16.2.1221,855
17.1.016,881
17.1.0-rc.11
17.0.1011,463
17.1.0-rc.01
17.0.968,470
17.1.0-next.31
17.0.83,157
16.2.116,770
17.1.0-next.21
17.0.738,856
17.1.0-next.11
17.0.62,751
17.0.53,864
17.1.0-next.01
17.0.4178
17.0.34,209
17.0.21,452
17.0.15,032
17.0.06,846
16.2.1015,054
17.0.0-rc.51
17.0.0-rc.448
17.0.0-rc.31
16.2.95,908
17.0.0-rc.25
17.0.0-rc.12
16.2.893,106
16.2.76,984
17.0.0-rc.02
17.0.0-next.92
17.0.0-next.81
16.2.68,370
15.2.1027,019
14.2.1395,414
17.0.0-next.71
16.2.51,802
17.0.0-next.63
16.2.43,594
17.0.0-next.57
16.2.331,379
17.0.0-next.41
16.2.22,508
17.0.0-next.33
17.0.0-next.03
16.2.110,832
16.2.037,122
16.1.890,653
16.2.0-rc.11
16.2.0-rc.01
16.1.7436
16.2.0-next.41
16.1.62,492
16.2.0-next.39
16.1.51,812
16.2.0-next.21
16.2.0-next.11
16.1.427,326
16.1.310,911
15.2.926,994
16.2.0-next.0876
16.1.2961
14.2.1241,745
16.1.11,995
16.1.0113,296
16.0.67,514
16.1.0-rc.01
16.0.5841
16.1.0-next.21
16.0.41,793
16.1.0-next.11
16.0.31,513
16.1.0-next.01
16.0.22,649
16.0.1609,544
16.0.03,624
15.2.810,459
16.0.0-rc.427
16.0.0-rc.31
16.0.0-rc.21
15.2.73,303
16.0.0-rc.14
16.0.0-rc.014
15.2.637,776
16.0.0-next.748
15.2.52,434
16.0.0-next.66
16.0.0-next.52
15.2.459,302
14.2.119,555
13.3.11136,538
16.0.0-next.41
15.2.3415
16.0.0-next.31
15.2.22,250
16.0.0-next.21
15.2.12,197
16.0.0-next.11
16.0.0-next.075
15.2.05,681
15.2.0-rc.01
15.1.610,765
15.2.0-next.412
15.1.52,324
15.2.0-next.31
15.1.416,918
15.2.0-next.21
15.1.33,254
15.2.0-next.11
15.1.26,342
15.2.0-next.01
15.1.11,343
15.1.02,011
15.1.0-rc.01
15.0.57,587
15.1.0-next.312
15.0.447,167
15.1.0-next.23
15.0.31,309
15.1.0-next.11
15.0.21,028
15.1.0-next.01
15.0.11,351
13.3.1012,013
14.2.1016,541
15.0.02,437
15.0.0-rc.51
15.0.0-rc.41
15.0.0-rc.31
14.2.92,693
15.0.0-rc.21
14.2.82,667
15.0.0-rc.12
14.2.72,118
15.0.0-rc.01
15.0.0-next.61
14.2.64,788
15.0.0-next.55
15.0.0-next.42
14.2.51,401
15.0.0-next.35
14.2.44,107
15.0.0-next.21
15.0.0-next.11
14.2.32,532
15.0.0-next.01
14.2.221,006
14.2.132,217
14.2.08,750
14.2.0-rc.01
14.2.0-next.21
14.1.36,850
14.2.0-next.11
14.1.23,622
14.2.0-next.01
14.1.1857
12.2.1897,660
14.1.03,032
14.0.78,644
13.3.915,504
14.1.0-rc.321
14.0.61,721
14.1.0-next.41
14.0.552,686
14.1.0-next.36
14.0.41,316
14.1.0-next.21
14.0.3510
14.1.0-next.11
14.0.21,321
13.3.85,416
14.1.0-next.01
14.0.1763
14.0.01,719
14.0.0-rc.31
14.0.0-rc.214
13.3.75,084
14.0.0-rc.11
13.3.663,269
14.0.0-rc.04
14.0.0-next.131
13.3.591,535
14.0.0-next.121
13.3.41,346
14.0.0-next.111
14.0.0-next.101
14.0.0-next.91
13.3.32,583
14.0.0-next.81
13.3.218,049
12.2.179,733
11.2.1924,693
14.0.0-next.71
13.3.11,568
14.0.0-next.61
13.3.07,766
13.2.611,259
14.0.0-next.51
14.0.0-next.41
14.0.0-next.31
13.2.59,519
14.0.0-next.21
13.2.43,573
14.0.0-next.11
13.2.34,957
14.0.0-next.01
13.2.24,376
13.2.11,041
12.2.164,295
13.2.01,040
13.2.0-rc.11
13.2.0-rc.01
13.1.47,420
11.2.181,381
12.2.151,669
13.1.33,460
13.2.0-next.21
11.2.17240
10.2.416,168
11.2.1641
13.2.0-next.11
13.1.29,378
13.1.14,934
13.2.0-next.01
13.1.0801
13.1.0-rc.01
12.2.141,599
13.1.0-next.31
13.0.46,468
13.1.0-next.21
13.0.35,758
13.1.0-next.11
13.0.214,057
13.0.1429
13.1.0-next.01
12.2.132,084
13.0.0369
13.0.0-rc.31
13.0.0-rc.21
12.2.12533
11.2.152,560
13.0.0-rc.11
12.2.11988
13.0.0-rc.02
12.2.105,933
13.0.0-next.91
12.2.9630
13.0.0-next.81
12.2.8591
13.0.0-next.71
12.2.714,291
13.0.0-next.61
13.0.0-next.51
12.2.61,122
13.0.0-next.41
12.2.5609
13.0.0-next.31
12.2.4825
13.0.0-next.21
12.2.3861
13.0.0-next.11
12.2.21,323
13.0.0-next.01
12.2.11,900
12.2.01,950
12.2.0-rc.01
12.1.49,808
12.2.0-next.31
12.1.31,736
12.2.0-next.21
12.1.2474
12.1.16,782
12.2.0-next.03
12.1.01,778
12.1.0-next.61
12.0.527,638
12.1.0-next.51
12.0.48,209
11.2.147,980
12.0.3851
12.1.0-next.41
12.0.21,005
12.1.0-next.31
12.0.12,195
12.1.0-next.21
11.2.131,035
12.0.06,246
12.0.0-rc.35
12.0.0-rc.23
11.2.121,238
11.2.111,597
12.0.0-rc.11
12.0.0-rc.01
11.2.107,435
12.0.0-next.93
11.2.91,276
12.0.0-next.821
11.2.81,307
11.2.7410
12.0.0-next.72
11.2.626,180
12.0.0-next.676
12.0.0-next.51
11.2.52,611
12.0.0-next.41
11.2.439,332
12.0.0-next.31
11.2.315,079
9.1.1514,815
10.2.35,801
11.2.21,662
12.0.0-next.21
11.2.15,500
12.0.0-next.11
12.0.0-next.01
11.2.013,819
9.1.14212
10.2.2492
11.1.43,272
11.2.0-rc.11
11.1.341
11.2.0-rc.06
11.1.25,993
11.2.0-next.01
11.1.11,525
11.1.02,400
11.1.0-rc.01
11.0.710,255
11.0.6479
11.1.0-next.41
10.2.111,751
9.1.1310,261
11.0.51,921
11.1.0-next.31
11.1.0-next.21
11.0.4418
11.1.0-next.11
11.0.32,742
11.1.0-next.01
11.0.2877
11.0.13,868
11.0.01,056
11.0.0-rc.31
11.0.0-rc.21
11.0.0-rc.14
11.0.0-rc.02
10.2.04,221
10.1.78,708
11.0.0-next.71
10.1.6653
11.0.0-next.61
11.0.0-next.51
10.1.5385
11.0.0-next.41
10.1.4716
10.1.3391
11.0.0-next.31
10.1.2279
11.0.0-next.21
10.1.1121
11.0.0-next.11
11.0.0-next.01
10.1.01,131
10.0.87,842
10.1.0-rc.01
10.1.0-next.71
10.0.73,126
10.1.0-next.61
10.0.6463
10.1.0-next.53
10.1.0-next.41
10.1.0-next.31
10.0.5666
8.3.2956,444
9.1.126,519
10.1.0-next.21
10.0.41,305
10.0.3217
10.1.0-next.13
9.1.11616
10.0.2613
10.1.0-next.03
9.1.10449
10.0.1534
10.0.0622
8.3.28326
9.1.95,024
10.0.0-rc.51
10.0.0-rc.41
8.3.27126
9.1.8763
10.0.0-rc.31
10.0.0-rc.218
9.1.72,366
10.0.0-rc.05
10.0.0-next.66
10.0.0-next.51
9.1.6782
9.1.5399
10.0.0-next.41
9.1.42,243
10.0.0-next.31
10.0.0-next.21
9.1.3676
10.0.0-next.11
9.1.269
10.0.0-next.011
9.1.11,422
7.3.1030,249
8.3.261,739
9.1.02,116
9.1.0-rc.03
9.1.0-next.43
9.0.76,428
9.0.62,371
9.1.0-next.35
9.1.0-next.215
9.0.5787
9.0.4377
9.1.0-next.12
9.1.0-next.01
9.0.31,109
9.0.2777
9.0.1734
9.0.0254
8.3.251,952
9.0.0-rc.1450
9.0.0-rc.131
8.3.24296
9.0.0-rc.1213
9.0.0-rc.112
9.0.0-rc.104
8.3.235,352
9.0.0-rc.92
8.3.22657
9.0.0-rc.838
9.0.0-rc.79
8.3.21473
9.0.0-rc.64
9.0.0-rc.552
8.3.208,025
9.0.0-rc.414
9.0.0-rc.38
9.0.0-rc.21
8.3.19565
8.3.18241
9.0.0-rc.11
9.0.0-rc.02
8.3.17321
9.0.0-next.191
8.3.1615
9.0.0-next.181
9.0.0-next.171
8.3.151,301
9.0.0-next.161
9.0.0-next.151
8.3.14857
9.0.0-next.141
8.3.1314
9.0.0-next.131
8.3.12209
9.0.0-next.121
9.0.0-next.111
8.3.10129
9.0.0-next.101
8.3.9226
9.0.0-next.91
9.0.0-next.81
8.3.8343
9.0.0-next.71
8.3.781
9.0.0-next.61
8.3.61,062
8.3.5845
9.0.0-next.51
8.3.42,265
9.0.0-next.41
9.0.0-next.31
8.3.3625
9.0.0-next.21
8.3.2260
8.3.1276
9.0.0-next.11
9.0.0-next.01
8.3.0185
8.3.0-rc.03
8.2.21,557
8.3.0-next.21
8.3.0-next.11
8.2.1507
8.2.0614
8.3.0-next.01
8.1.31,602
8.2.0-rc.01
8.2.0-next.11
8.1.2482
8.2.0-next.01
8.1.1522
8.1.0107
8.0.61,423
8.0.51
8.1.0-rc.01
8.1.0-beta.32
8.0.4160
8.1.0-beta.29
8.1.0-beta.12
8.1.0-beta.01
8.0.3333
8.0.2262
8.0.1376
8.0.06,967
8.0.0-rc.49
8.0.0-rc.323
7.3.97,912
8.0.0-rc.21
8.0.0-rc.11
8.0.0-rc.01
8.0.0-beta.181
8.0.0-beta.171
8.0.0-beta.161
8.0.0-beta.158
8.0.0-beta.141
8.0.0-beta.131
8.0.0-beta.121
8.0.0-beta.111
7.3.88,028
8.0.0-beta.101
7.3.7271
8.0.0-beta.91
8.0.0-beta.81
8.0.0-beta.72
7.3.6576
8.0.0-beta.61
7.3.5281
8.0.0-beta.51
7.3.4349
8.0.0-beta.41
8.0.0-beta.21
7.3.3187
8.0.0-beta.11
7.3.2216
7.3.1884
8.0.0-beta.02
7.3.0419
7.2.41,804
7.3.0-rc.01
7.2.3274
7.2.2569
7.3.0-beta.01
7.2.1424
7.2.0333
0.8.95,664
7.2.0-rc.02
7.1.42,382
7.2.0-beta.28
7.1.3197
7.2.0-beta.11
7.1.2256
7.1.1107
7.2.0-beta.01
0.8.8174
7.1.0356
7.0.71,567
7.1.0-rc.01
7.0.6374
7.0.5350
7.1.0-beta.11
0.8.772
7.1.0-beta.01
7.0.42,546
7.0.3237
0.8.650
7.0.2304
7.0.154
0.8.5441
7.0.0-rc.31
7.0.0-rc.21
7.0.0-rc.11
0.8.4168
7.0.0-rc.01
7.0.0-beta.41
0.8.3404
0.9.0-beta.365
0.8.2155
0.9.0-beta.21
0.9.0-beta.11
0.9.0-beta.02
0.8.191
0.8.042
0.8.0-rc.11
0.8.0-rc.01
0.7.52,021
0.7.4155
0.8.0-beta.31
0.8.0-beta.21
0.7.3258
0.8.0-beta.11
0.8.0-beta.01
0.7.2148
0.7.1315
0.7.0225
0.7.0-rc.31
0.7.0-rc.21
0.7.0-rc.11
0.7.0-rc.02
0.7.0-beta.21
0.6.84,938
0.7.0-beta.11
0.7.0-beta.03
0.6.7270
0.6.61
0.6.538
0.6.42
0.6.3277
0.6.227
0.6.198
0.6.01,513
0.5.132,873
0.5.121
0.5.111
0.5.101
0.5.93
0.5.81
0.5.75
0.5.65
0.5.57
0.5.48
0.5.3699
0.5.21
0.5.11
0.5.01
0.4.9149
0.4.8167
0.4.720
0.4.621
0.4.51
0.4.41
0.4.33
0.4.26
0.4.11
0.3.28,236
0.4.01
0.3.1167
0.3.01
0.2.016
0.0.523,194
0.0.5123
0.0.5065
0.0.497
0.0.4825
0.0.463
0.0.4516
0.0.441
0.0.431
0.0.42269
0.0.4112
0.0.4061
0.0.3921
0.0.384
0.0.3715
0.0.3611
0.0.35160
0.0.34616
0.0.3332
0.0.3273
0.0.311
0.0.309
0.0.281
0.0.271
0.0.261
0.0.2510
0.0.2411
0.0.235
0.0.221
0.0.2164
0.0.193
0.0.181
0.0.171
0.0.161
0.0.151
0.0.141
0.0.131
0.0.121
0.0.111
0.0.101
0.0.91
0.0.81
0.0.71
0.0.61
0.0.51
0.0.41
0.0.31
0.0.21
0.0.15

Package Sidebar

Install

npm i @angular-devkit/schematics

Weekly Downloads

10,147,362

Version

20.0.1

License

MIT

Unpacked Size

256 kB

Total Files

123

Last publish

Collaborators

  • angular
  • google-wombot