Command
generate
Is this a regression?
The previous version in which this bug was not present was
No response
Description
If you try to override standard Angular Schematics with a custom one by the use of schematicCollections option in angular.json file like for instance:
"cli": { "analytics": false, "schematicCollections": [ "./schematics", "@schematics/angular" ] }
And create your custom schematics (index.ts):
`import {
externalSchematic,
Rule,
SchematicContext,
Tree
} from '@angular-devkit/schematics';
import { Schema as ComponentOptions } from '@schematics/angular/component/schema';
export function generateComponent(options: ComponentOptions): Rule {
console.log('Custom schematics for generate component triggered...');
return (_tree: Tree, _context: SchematicContext) => {
return externalSchematic(
"@schematics/angular",
"component",
options
);
};
}`
It will end up with an error message like this one:
Collection "D" cannot be resolved.
Where D refers to the drive letter of the project folder location.
Minimal Reproduction
Please use the attached repo to reproduce the issue:
schematics-test.zip
Run npm install and then try to generate a component using:
ng g c
command.
Exception or Error
Your Environment
Angular CLI: 19.1.5
Node: 22.13.0
Package Manager: npm 8.6.0
OS: win32 x64
Angular: 19.1.4
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router
Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1901.5
@angular-devkit/build-angular 19.1.5
@angular-devkit/core 19.1.5
@angular-devkit/schematics 19.1.5
@angular/cli 19.1.5
@schematics/angular 19.1.5
rxjs 7.8.1
typescript 5.7.3
zone.js 0.15.0
Anything else relevant?
The error is caused by parseSchematicInfo method defined in SchematicsCommandModule in file:
@angular\cli\src\command-builder\schematics-command-module.js
Modifying the function as follows:
parseSchematicInfo(schematic) { if (schematic?.includes(':')) { const segments = schematic.split(':'); const [collectionName, schematicName] = [segments.slice(0, -1).join(':'), segments.at(-1)]; return [collectionName, schematicName]; } return [undefined, schematic]; }
Seems to fix the problem.
The issue is also present in v18.
Command
generate
Is this a regression?
The previous version in which this bug was not present was
No response
Description
If you try to override standard Angular Schematics with a custom one by the use of schematicCollections option in angular.json file like for instance:
"cli": { "analytics": false, "schematicCollections": [ "./schematics", "@schematics/angular" ] }And create your custom schematics (index.ts):
`import {
externalSchematic,
Rule,
SchematicContext,
Tree
} from '@angular-devkit/schematics';
import { Schema as ComponentOptions } from '@schematics/angular/component/schema';
export function generateComponent(options: ComponentOptions): Rule {
console.log('Custom schematics for generate component triggered...');
return (_tree: Tree, _context: SchematicContext) => {
return externalSchematic(
"@schematics/angular",
"component",
options
);
};
}`
It will end up with an error message like this one:
Where D refers to the drive letter of the project folder location.
Minimal Reproduction
Please use the attached repo to reproduce the issue:
schematics-test.zip
Run npm install and then try to generate a component using:
ng g ccommand.
Exception or Error
Your Environment
Anything else relevant?
The error is caused by parseSchematicInfo method defined in SchematicsCommandModule in file:
@angular\cli\src\command-builder\schematics-command-module.js
Modifying the function as follows:
parseSchematicInfo(schematic) { if (schematic?.includes(':')) { const segments = schematic.split(':'); const [collectionName, schematicName] = [segments.slice(0, -1).join(':'), segments.at(-1)]; return [collectionName, schematicName]; } return [undefined, schematic]; }Seems to fix the problem.
The issue is also present in v18.