Erros: o caminho de dados “.builders ['app-shell']” deve ter exigido a propriedade 'class'


160

Estou recebendo esse erro ao executar meu aplicativo. Aqui estão os detalhes da minha inscrição.

Angular CLI: 7.3.3 
Node: 10.15.1 
Angular: 7.2.7 
@angular-devkit/architect -0.13.3 
@angular-devkit/build-angular- 0.800.1 
@angular-devkit/build-optimizer - 0.800.1 
@angular-devkit/build-webpack - 0.800.1 
@angular-devkit/core -7.3.3 
@angular-devkit/schematics -7.3.3 
@angular/cli -7.3.3 
@ngtools/webpack -8.0.1 
@schematics/angular -7.3.3 
@schematics/update 0.13.3 
rxjs 6.3.3 
typescript 3.2.4 
webpack 4.30.0

Eu já tentei limpar o cache.


Aqui está o detalhe da minha aplicação. CLI angular: 7.3.3 Nó: 10.15.1 Angular: 7.2.7 @ angular-devkit / architect -0.13.3 @ angular-devkit / build-angular- 0.800.1 @ angular-devkit / otimizador de construção - 0.800.1 @ angular-devkit / build-webpack - 0.800.1 @ angular-devkit / core -7.3.3 @ angular-devkit / schematics -7.3.3 @ angular / cli -7.3.3 @ ngtools / webpack -8.0.1 @schematics / angular -7.3.3 @ schematics / update 0.13.3 rxjs 6.3.3 typescript 3.2.4 webpack 4.30.0
Ekta Gandhi

1
Esse problema geralmente ocorre devido a pacotes incompatíveis. Você atualizou recentemente o package.json?
Deepika

7
Finalmente eu encontrei a solução. 1) Em primeiro lugar, elimine todas as alterações no arquivo package.json, fornecendo o comando git checkout package.json simples. 2) Depois, faça a alteração no package.json em @ angular-devkit / build-angular- ~ 0.800.1 (Adicione cauda em vez de cap) 3) Execute o comando rm -rf node_modules / 4) Em seguida, limpe a captura usando o comando npm cache limpo -f 5) E, finalmente, execute o comando npm install. Isso funciona para mim.
Ekta Gandhi

1
Acima, npm clean cache -festá errado, deveria estar npm cache clean --force.
Fabien Haddadi

2
O que eu descobri é que havia definido a nvm para usar a versão errada do nó, necessária para configurá-la corretamente usando nvm use 12.14.01(no meu caso)
QuietSeditionist 05 de

Respostas:


173

No seu package.json, altere o construtor devkit.

"@angular-devkit/build-angular": "^0.800.1",

para

"@angular-devkit/build-angular": "^0.10.0",

funciona para mim.
boa sorte.


31
Chegou @angular-devkit/build-angular": "0.13.4"e deu certo.
precisa saber é o seguinte

3
Perfeito. Trabalhou com "0.13.4" e executando a compilação npm posteriormente
SouravOrii 4/19/19

1
Aterrizei aqui porque recebi uma notificação sobre uma vulnerabilidade de segurança detectada no js-yaml <3.13.1. Após a atualização, recebi esta mensagem de erro. De qualquer forma, "^0.10.0"consertou.
Alesh Houdek

11
o 0.13.4 funcionou para mim, no entanto, certifique-se de remover primeiro a pasta node_modules, excluir o package-lock.json e depois executar o npm install. parece consertar tudo.
Indy-Jones

5
Esta solução funciona, mas está errada, você deve atualizar a versão angular e angular do cli. Verifique @ovangle resposta abaixo
Francesco Borzi 30/07

101

Seguindo trabalhou para mim

npm uninstall @angular-devkit/build-angular
npm install @angular-devkit/build-angular@0.13.0

3
Embora essa resposta seja direta, ela também carece de recurso ou referência. Cegamente, as pessoas que instalam uma versão específica do pacote podem atrapalhar todo o projeto. Seja claro e forneça algumas referências.
Zakky 22/06

70

Todos aqui estão focados em fazer o downgrade do @ angular-devkit / build-angular para as versões do @angular 7.x para compatibilidade, mas o que eles deveriam fazer é atualizar @angular/clipara as versões do angular 8.

O problema é que o cli do sistema ainda está travado em uma versão antiga e não é atualizado automaticamente por ng update(porque está fora do projeto angular controlado), portanto, ele está sendo deixado em uma versão incompatível ao tentar acessar as bibliotecas angulares.

A desatualização @angular-devkit/build-angularcausa apenas mais incompatibilidades.

npm i --global @angular/cli@latest

vai resolver o problema sem quebrar as coisas em outro lugar.


6
Essa deve ser a resposta. Este erro ocorreu-me porque extraí de uma ramificação que foi atualizada para o Angular 8, mas o angular do meu computador ainda é o Angular 7.
terahertz

19
Esse problema pode ocorrer quando você faz npm audit fixem projetos que ainda estão em angular@7por isso às vezes rebaixamento @angular-devkit/build-angularé a resposta correta
Xesenix

4
correr npm audit fixalgumas vezes introduz alterações de frenagem. nós deve preferivelmente executar npm audita entender os resultados e atualizar o pacote 1 por 1 usando algo parecidonpm i --save-dev <package@version>
Naren

1
@zhuhang Isso é simplesmente falso. Você pode esperar que o upgrade da CLI global seja compatível com versões anteriores com as últimas versões, não necessariamente que seja compatível com versões anteriores.
ovangle 27/11/19

1
@ovangle Eu não mencionei compatível com a frente. Estou dizendo que as pessoas não devem atualizar ou fazer o downgrade cegamente, especialmente a angular-cliversão. Deve-se identificar sua versão atual da CLI e usar o devkit que corresponda a essa CLI. Se você deseja atualizar os pacotes do devkit, a atualização completa da CLI está correta.
Zhuhang.jasper 28/11/19

62

Todo mundo está focado em fazer o downgrade da @angular-devkit/build-angularversão para o X ou atualizar@angular/cli para Y ou mais recente.

No entanto, por favor, não cegamente sugerir um X or Y or latestcomo respostas. (Embora geralmente, o downgrade do devkit deva ser melhor porque o upgrade da CLI é uma mudança de última hora)

A versão correta a ser escolhida depende sempre da sua versão angular (angular-cli).

Angular CLI v8.3.19 -> 0.803.19
Angular CLI v8.3.17 -> 0.803.17
Angular CLI v7.3.8 -> 0.13.8
Angular CLI v6-lts -> 0.8.9

Para outras versões específicas, visite: https://github.com/angular/angular-cli/tags . Encontre sua versão da CLI e, em algumas tags, elas mencionam as versões correspondentes dos @angular-devkit/**pacotes.

Nota: Se você deseja atualizar sua versão da CLI, considere primeiro atualizar para a versão mais recente da sua versão principal, não vá simplesmente para a próxima versão principal.


3
Não sei por que essa resposta foi rejeitada; é um bom conselho. De fato, ele resolveu meu problema (como eu havia atualizado meu devkit/build-angularpacote para, 0.803.xmas deixei minha CLI angular em 7.3.x. Como não pretendia atualizar minha CLI angular, voltei a usar a versão 0.13.xdo devkit
Gregg L

2
@ GreggL Na verdade, minha resposta é melhor do que aquela com mais votos. Outras respostas sugerem simplesmente atualizar / fazer o downgrade BLINDLY. Como minha resposta sugere, a versão correta do CLI / devkit se correlaciona, mas ninguém fornece um F, porque é assim que a comunidade de desenvolvedores é.
Zhuhang.jasper

Você é um salva-vidas, TX! Mas você tem alguma idéia para o cli 7.0.6? Não está escrito lá
Erhan Yaşar

2
Para adicionar a essa ótima resposta: No meu próprio projeto, incluo @angular/clinas dependências de desenvolvimento e certifico-me de que ele corresponda ao @angular-devkit/build-angular. Dessa forma, posso manter vários projetos com várias versões da CLI. Se você fizer ng sisso, usará a CLI do computador, se usar npm start(que é um script package.jsonpara fazer ng serveisso, na verdade, usará a CLI local para iniciar o aplicativo com a CLI certa. Espero que ajude
ma.D

Atualizado para o Angular 9, a partir de hoje (fonte NPM ): 0.901.1 -> mais recente, 0.1000.0-próximo.0 -> próximo, 0.8.9 -> v6-lts, 0.803.26 -> v8-lts, 0.13 .10 -> v7-lts
Massimiliano Caniparoli 17/04

30

Seu @ angular-devkit é incompatível com a versão @ angular / cli; portanto, basta instalar um mais antigo como este, por exemplo:

npm install @angular-devkit/build-angular@0.13.8 @angular-devkit/build-ng-packagr@0.13.8

Queria postar o mesmo. Visto 0.12.4flutuando, mas isso não funciona para mim.
M. Doe

@ M.Doe A versão correta depende da versão do seu 1angular-cli`. Veja isto: stackoverflow.com/a/59043569/6122411
zhuhang.jasper

22

Mesmo problema após tentar atualizar para o Ng8, que falhou devido a problemas de dependência.

npm uninstall @angular-devkit/build-angular

então eu usei,

npm install @angular-devkit/build-angular@0.12.4

consertou ...


Às vezes, essa solução não é viável porque sua versão pode não ser o requisito de alguém. Excluir pacote lock jsonnpm i @angular-devkit/build-angular
Tejashree 27/03

14

Eu tive o mesmo problema, mas o resolvi graças ao comentário de Ekta Gandhi:

Finalmente eu encontrei a solução.

1) Em primeiro lugar, elimine todas as alterações no arquivo package.json, dando o comando simples git checkout package.json.

2) Depois, faça a alteração no package.json em @ angular-devkit / build-angular- ~ 0.800.1 (Adicione cauda em vez de tampa)

3) Em seguida, execute o comando rm -rf node_modules /

4) Limpe a captura, dando o comando npm clean cache -f

5) E, finalmente, execute o comando npm install. Isso funciona para mim.

.... Juntamente com a modificação proposta por Dimuthu

Chegou ao @ angular-devkit / build-angular ":" 0.13.4 "e funcionou.


Note-se que a versão "0.13.4" do @ angular-devkit / build-angular tem um problema ao usar componentes carregados com preguiça. Para evitar essa questão os usuários precisam atualizar seu pacote @ angular-devkit / build-angular ... Então uma espécie de trade off aqui ...
Adan

7

Isso aconteceu comigo quando instalei o Angular 8, existem algumas incompatibilidades que não consegui resolver. Eu tive que fazer o downgrade porque desci na toca do coelho, mexendo com todas as versões até encontrar uma que funcionasse.

Primeiro, o TypeScript estava desatualizado, a instalação padrão adicionou uma referência ao TypeScript 3.1.6 e requer 3.4 ou superior.

npm install typescript@">=3.4 <3.5"

Segundo, o uso do devkit 0.800.1 ou 0.800.1 sempre terminava em incompatibilidades. Eu tentei muitas combinações, mas ainda não tenho certeza de que seja totalmente compatível, principalmente porque estou usando um bootstrap um pouco mais antigo e ainda não consigo atualizar.

Por fim, tentei fazer o downgrade (vá para package.json e localize as devDependencies) até que um deles funcione.

@angular-devkit/build-angular": "0.13.4"

Estou certo de que seu problema são as versões de dependências, mas não posso dizer qual. Experimente fazer o downgrade.


Enquanto ele funciona, gostaria de sugerir @angular-devkit/build-angular": "0.13.8"uma vez que parece ser a versão mais recente que as obras
M. Doe

Muito obrigado. Parece pela versão de bootstrap ou dependências, não me deixe ir mais alto do que o 0.13.4, mas ele iria trabalhar para muitas pessoas
Maximiliano Rios

Com 0.13.8 (essencialmente qualquer coisa menor que 0.800. *), Recebo: Na An unhandled exception occurred: Could not find the implementation for builder @angular-devkit/build-angular:browser See "/tmp/ng-5iKcHN/angular-errors.log" for further details.versão mais recente, recebo erro do título. O que fazer agora?
Dominik Szymański

7

Tente atualizar o arquivo package.json de

  "@angular-devkit/build-angular": "^0.800.1" 

para

  "@angular-devkit/build-angular": "^0.12.4"

Em seguida, execute o npm install na linha de comandos.


6

Eu também estava encontrando esse problema e, ao fazer mais atualizações, ocorreram mais problemas.

O que funcionou para mim no final foi mais ou menos remover o CLI angular e reinstalá-lo com estas etapas:

npm uninstall -g @angular/cli
npm cache clean --force
npm install -g @angular/cli

isso me ajudou a fonte: como desinstalar angular / CLI


3

Fiz essa alteração no arquivo package.json e, depois, funcionou.

"@angular-devkit/build-angular": "^0.803.23"

para

"@angular-devkit/build-angular": "^0.13.9"


2

Mudei @angular-devkit/build-angular": "0.9.0.1"para @angular-devkit/build-angular": "0.13.4"e funcionou.


Funcionou para mim, também tive que executar o npm install para garantir que a versão correta fosse baixada.
David Brunning

2

Também enfrentei esse problema e lutei horas para resolvê-lo. Tentei todas as opções acima, mas nada resolveu o meu problema. Esse problema ocorre devido à incompatibilidade de versão do angular / cli e angular-devkit, então fiz o seguinte:

  1. Versão alterada manualmente dos arquivos:

    @ angular-devkit / build-angular ":" ^ 0.13.9 ",

    @angular/cli": "~7.0.3", // Isso é para Angular7, para Angular8: 0.803.23

  2. Excluído package-lock.json

  3. Executado: npm install

Isso resolveu meu problema.


1

Do meu lado era pacote

@ angular-devkit / build-angular

e

@ angular-devkit / compilação-pacote-ng

não era a mesma versão, atualizando build-ng-packagrpara a mesma versão que build-angularcorrigi meu problema.


1

Se você mudar para os angulares 8 ou 9, isso fará o truque

ng update @angular/cli

0

Você pode simplesmente auditar seu código e depois

#sudo su 
rm -rf package-lock.json node_modules
sudo npm i --save 

-1

Você tem dependências incompatíveis. Resolvi esse problema alterando o package.json de outro projeto angular e, depois de alterar o packag.json, alteramos apenas as versões das dependências.

após a alteração, escreva:

-npm link

-npm serve -o

então é trabalho :)

   {
   "name": "angular-jwt-auth",
   "version": "0.0.0",
   "scripts": {
   "ng": "ng",
   "start": "ng serve",
   "build": "ng build",
   "test": "ng test",
   "lint": "ng lint",
   "e2e": "ng e2e"
   },
   "private": true,
   "dependencies": {
   "@angular/animations": "^7.1.4",
   "@angular/cdk": "^7.3.1",
   "@angular/common": "~7.1.0",
   "@angular/compiler": "~7.1.0",
   "@angular/core": "~7.1.0",
   "@angular/forms": "~7.1.0",
   "@angular/http": "^6.1.10",
   "@angular/material": "^7.3.1",
   "@angular/platform-browser": "~7.1.0",
   "@angular/platform-browser-dynamic": "~7.1.0",
   "@angular/router": "~7.1.0",
   "@ng-bootstrap/ng-bootstrap": "^4.2.0",
   "@types/jquery": "^3.3.29",
   "angular-6-datatable": "^0.8.0",
   "bootstrap": "^4.3.1",
   "chart.js": "^2.8.0",
   "core-js": "^2.5.4",
   "jquery": "^3.4.1",
   "rxjs": "~6.3.3",
   "zone.js": "~0.8.26"
    },
   "devDependencies": {
   "@angular-devkit/build-angular": "~0.11.0",
   "@angular/cli": "~7.1.0",
   "@angular/compiler-cli": "~7.1.0",
   "@angular/language-service": "~7.1.0",
   "@types/chart.js": "^2.7.53",
   "@types/jasmine": "^2.8.16",
   "@types/jasminewd2": "^2.0.6",
   "@types/node": "~8.9.4",
   "codelyzer": "~4.2.1",
   "jasmine-core": "~2.99.1",
   "jasmine-spec-reporter": "~4.2.1",
   "karma": "~3.1.1",
   "karma-chrome-launcher": "~2.2.0",
   "karma-coverage-istanbul-reporter": "~2.0.1",
   "karma-jasmine": "~1.1.2",
   "karma-jasmine-html-reporter": "^0.2.2",
   "protractor": "~5.4.0",
   "ts-node": "~7.0.0",
   "tslint": "~5.11.0",
   "typescript": "~3.1.6"
   }

Eu tentei e me deu os mesmos erros de erro: O caminho de dados "" NÃO deve ter propriedades adicionais (es5BrowserSupport).
Ekta Gandhi

-1

Eu tive esse problema, é assim que eu resolvi. O problema principalmente é que sua versão Angular não suporta a versão do Node.js. para a compilação. Portanto, a melhor solução é atualizar o Node.js para o mais estável atualmente.

Para uma atualização limpa do Node.js, aconselho usar o n. se você estiver usando Mac.

npm install -g n
npm cache clean -f
sudo n stable
npm update -g

e agora verifique se você está atualizado:

node -v
npm -v

Para mais detalhes, consulte este link: aqui


Ficaria feliz em saber por que eu recebi este voto negativo. Esta é uma resposta limpa, sem tentar ter algumas "soluções alternativas"
arielb

porque não está relacionado à versão do nó, deve ser a versão angular-cli.
Zhuhang.jasper

Acabei de ter esse problema, não acho que seja a versão angular-cli, está relacionada à angular-cli, mas é afetada pela versão do nó.
Arielb 27/11/19

-1

Nenhuma das respostas acima mencionadas funciona para mim.

Meu objetivo original era consertar as vezes CONSTANT COMPILING compilação do meu projeto com o VSCode.

Eu tentei de várias maneiras, mas NADA estava funcionando - o projeto NÃO VAI COMPILAR!

Finalmente eu descobri qual é o problema aqui:

Eu clonei o projeto no repositório da minha empresa e todo o código de lá TEM QUE ir exatamente com as versões das dependências quando a parte existente do projeto foi codificada.

No final, excluí o projeto anteriormente clonado novamente (algumas vezes) e clonei novamente (também algumas vezes) , e não fiz nada além de "npm install" e tudo começou a funcionar .

A lição que aprendi aqui é que:

Às vezes, você piora a situação ao tentar resolver alguns problemas (o que eu tive foi o CONSTANT COMPILING do meu projeto).

Mas isso não significa que não podemos tentar resolver os problemas. Nós podemos. Mas quando tudo se torna uma bagunça, é melhor seguirmos o código original.

Felizmente, a CONSTANT COMPILING do meu projeto acontece apenas uma vez por vez, não o tempo todo. Não é fixo, mas eu tenho que suportar, caso contrário, meu projeto nem será compilado.


-2

é trabalho reinstalar @ angular-devkit / build-angular @ 0.13.4

npm install @angular-devkit/build-angular@0.13.4 --save-dev
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.