-
Notifications
You must be signed in to change notification settings - Fork 11.9k
Description
🐞 Bug report
Command (mark with an x
)
- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc
- [X] schematics
Is this a regression?
Not as far as I know
Description
I tried to create a schematic that generates an application and adds a library to it. However, the library schematic does not accept a path
as parameter and it then attempts to create the library in the folder that contains the application. Specifically, it tries to read the angular.json
file from the folder containing the application folder (e.g. the folder where the schematic is run).
Note that I expected the path
property to work, as it's included with most of the other Angular schematics, for example component, module and service.
🔬 Minimal Reproduction
A minimal reproduction may be found in this repo.
It also addresses a problem I had when trying to work around this with applyToSubtree
.
Here is the simplest description I could come up with.
Given this factory:
export function createProject(_options: any): Rule {
return (_tree: Tree, _context: SchematicContext) => {
return chain([
externalSchematic('@schematics/angular', 'ng-new', optionsNew),
externalSchematic('@schematics/angular', 'library', optionsLib)
]);
};
}
If you execute the schematic in a folder named /parent/folder
and the app generates in a new folder named app (/parent/folder/app
), the library schematic searches for the angular.json
in /parent/folder
instead of /parent/folder/app
.
🔥 Exception or Error
An error occured:
Error: Unable to locate a workspace file for workspace path.
at Object.readWorkspace (C:\dev\scratchpad\scaffolding-tests\node_modules\@angular-devkit\core\src\workspace\core.js:74:19)
at async Object.getWorkspace (C:\dev\scratchpad\scaffolding-tests\node_modules\@schematics\angular\utility\workspace.js:51:27)
at async C:\dev\scratchpad\scaffolding-tests\node_modules\@schematics\angular\library\index.js:153:27
🌍 Your Environment
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 8.3.1
Node: 12.12.0
OS: win32 x64
Angular: undefined
...
Package Version
------------------------------------------------------
@angular-devkit/architect 0.803.1 (cli-only)
@angular-devkit/core 8.3.17
@angular-devkit/schematics 8.3.17
@schematics/angular 8.3.1 (cli-only)
@schematics/update 0.803.1 (cli-only)
rxjs 6.4.0
typescript 3.5.3