Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Library schematic does not support path property

Aberta
#16,080 6 comentários 9 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
35/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
angular, typescript
Domínio
cli

Direção de pesquisa

Comece pelo repositório de reprodução mínima vinculado na issue e rastreie o ponto de entrada do schematic de library em @schematics/angular/library/index.js, juntamente com utility/workspace.js do stack de erro. Confirme como o caminho é tratado quando a aplicação é gerada em uma subpasta. A tarefa estará concluída quando o schematic de library aceitar o caminho e localizar o angular.json da aplicação gerada sem o erro do workspace.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

area: @schematics/angular feature feature: insufficient votes

🐞 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

Similar issues

https://github.com/angular/angular-cli/issues/17598

Linguagem predominante
TypeScript
Estrelas
27k
Forks
11.8k
Merge médio
17h 25min
PRs com merge (30d)
183

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de angular/angular-cli

Todas as issues de angular/angular-cli

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.