Erro: não foi possível encontrar o arquivo do espaço de trabalho local ('angular.json')

189

Tenho travis-ciintegrado com a minha conta GitHub ( https://github.com/pradeep0601/Angular5-Router-App ).

Quando atualizei a @angular/cliversão 1.7.4 para 6.0.0-rc.3, a compilação começou a falhar com um erro:

Local workspace file ('angular.json') could not be found.
Error: Local workspace file ('angular.json') could not be found.
    at WorkspaceLoader._getProjectWorkspaceFilePath (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/workspace-loader.js:37:19)
    at WorkspaceLoader.loadWorkspace (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/workspace-loader.js:24:21)
    at TestCommand._loadWorkspaceAndArchitect (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/architect-command.js:177:32)
    at TestCommand.<anonymous> (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/architect-command.js:45:25)
    at Generator.next (<anonymous>)
    at /home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/architect-command.js:7:71
    at new Promise (<anonymous>)
    at __awaiter (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/architect-command.js:3:12)
    at TestCommand.initialize (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/architect-command.js:44:16)
    at /home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/command-runner.js:100:23

snippet package.json para entender melhor o ambiente em execução:

    "@angular/cli": "6.0.0-rc.3",
    "@angular/compiler-cli": "^5.2.0",
    "@angular/language-service": "^5.2.0",
    "@types/jasmine": "~2.8.3",
    "@types/jasminewd2": "~2.0.2",
Pradeep
fonte
Eu enfrentei o mesmo problema, e era bobo, isso ocorre ao usar o terminal do código do visual studio ee funciona ao mudar para o CLI padrão do Windows!
Gilles Kagarama

Respostas:

319

Eu apenas tive o mesmo problema.

Está relacionado à versão v6.0.0-rc.2, https://github.com/angular/angular-cli/releases :

Novo formato de configuração. O novo arquivo pode ser encontrado em angular.json (mas .angular.json também é aceito). A execução de atualização em um projeto CLI 1.7 o moverá para a nova configuração.

Eu precisava executar:

ng update @angular/cli --migrate-only --from=1.7.4

Isso foi removido .angular-cli.jsone criado angular.json.

Se isso levar ao seu projeto usando 1.7.4, instale a v6 localmente:

npm install --save-dev @angular/[email protected]

E tente novamente atualizar seu projeto com:

ng update @angular/cli --migrate-only --from=1.7.4
Lenni
fonte
4
correndo ng update @angular/cli --migrate-only --from=1.7.4resulta em erro: Collection "@schematics/angular/migrations/migration-collection.json" cannot be resolved.. alguma maneira de consertar isso?
GO VEGAN
1
Também estou recebendo a opção 'Desconhecida:' --extractCss ''
Mohammed Barakat
8
Verifique se as versões do npm e nodejs estão atualizadas ou é provável que haja uma falha. ng update @angular/clié tudo o que é necessário.
Rtaft
1
@ user1932595 Tive de atualizar @schematics/angularpara a versão mais recente para superar esse erro.
bygrace
2
Uma breve nota acima. A remoção do arquivo .angula-cli.json não aconteceu para mim até a segunda execução do comando ng update.
Aggie Jon de 87/06/08
78

Eu estava recebendo as mesmas mensagens de erro. Foi um erro bobo da minha parte, eu não estava rodando ng serveno diretório onde está o meu projeto Angular. Verifique se você está no diretório correto (diretório do projeto) antes de executar este comando.

DRG
fonte
3
oh isso é loucura :)) obrigado que também salvou muitos problemas complexos para mim! às vezes as soluções são realmente simples
msanjay
estava fazendo o mesmo erro
Faizan Mubasher
Eu fiz a mesma coisa. Você cria um diretório para servir o seu projeto, e isso cria um outro dentro do diretório desse diretório (tapa-me)
Jonathan
ie ng nova meu app, cd meu aplicativo (eu vi este comentário antes, mas assumiu que significava a um nível superior)
tony
estava
cometendo
36

Com versão recente, sem --migrate-only eu recebi o repo atualizado.

eu fiz atualização

O formato de configuração da CLI Angular foi alterado e sua configuração existente pode ser atualizada automaticamente executando o seguinte comando:

ng update @angular/cli
            Updating karma configuration
            Updating configuration
            Removing old config file (.angular-cli.json)
            Writing config file (angular.json)
            Some configuration options have been changed, please make sure to update any npm scripts which you may have modified.
DELETE .angular-cli.json
CREATE angular.json (3684 bytes)
UPDATE karma.conf.js (1040 bytes)
UPDATE src/tsconfig.spec.json (322 bytes)
UPDATE package.json (1340 bytes)
UPDATE tslint.json (3140 bytes)
Sundara
fonte
Eu receboIncompatible peer dependencies found. See above.
Simon Baars
Ocorreu um erro inesperado; package @ angular / flex-layout não possui versão nula.
Prageeth godage
20

Bem, enfrentei o mesmo problema assim que atualizei minha angular cliversão.

No começo eu estava usando o 1.7.4 e agora eu atualizei para angular cli 6.0.8.

Para atualizar o Angular Cli global:

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

Para atualizar o Angular Cli dev:

npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install

Para corrigir problemas de auditoria após a instalação do npm:

npm audit fix

Para corrigir o problema relacionado ao "angular.json":

ng update @angular/cli --migrate-only --from=1.7.4
Vikash Pandey
fonte
17

Desinstale a versão antiga do Angular cli e instale o Angular CLI global:

Atualize o pacote global Angular cli para a próxima versão, "@ angular / compiler-cli": "^ 6.0.0"

npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@next

Gere um novo projeto e aplicativo padrão executando o seguinte comando:

ng new my-project
cd my-project
ng serve
Sanjay kumar
fonte
7
não use cli @ next, use cli @ latest ou você obterá as versões beta.
Comute
9

Tente usar o comando abaixo:

ng update @angular/cli --migrate-only --from=1.7.4

Ele executará o abaixo

  • Atualizando a configuração do karma

  • Atualizando configuração

  • Removendo o arquivo de configuração antigo (.angular-cli.json)

  • Escrevendo arquivo de configuração (angular.json)

Por favor, note que o comando acima deve ser executado na pasta onde você possui o arquivo. angular-cli.jsone será substituído por angular.json.

TechSingh
fonte
Eu executei o comando várias vezes e o arquivo angular.json nunca aparece. No entanto, se eu excluir o arquivo angular-cli.json, execute o comando, o arquivo angular-cli.json será adicionado novamente. O que estou perdendo aqui?
jgritten
8

Se você não conhece a versão, o projeto atual foi feito, você pode omitir o --fromcomando e digitar--migrate-only

ng update @ angular / cli --migrate-only

vipin cp
fonte
7

Se todos os tipos de atualização de comandos não o fizerem. Tente excluir o package-lock.json . E, em seguida, execute o npm install . Fiz o truque para mim depois de passar por toneladas de comandos de atualização.

Dennis Gadomski
fonte
Alguma razão para não adotar essa abordagem como padrão (descartando a pasta node_modules e o package-lock.json) e executando apenas a instalação do npm?
Wallace Howery 08/08/19
4

Funciona para mim:

Excluir pasta node_modules

Comando de execução: npm install

(Se não funcionar pela primeira vez, repita isso 2 ou 3 vezes. É engraçado, mas funciona para mim.)

Shubham Verma
fonte
4
Por que repetir esse processo teria um efeito diferente da primeira vez?
Sledge
3

Verifique a estrutura da pasta onde você está executando o comando; você deve executar o comando 'ng serve' onde deve haver um arquivo angular.json na estrutura.

O arquivo angular.json será gerado por padrão quando executarmos o comando

npm install -g '@ angular / cli' do novo Project_name e depois cd project_folder então, execute ng serve. funcionou para mim

Vinay Reddy
fonte
3

Basta executar ng update @angular/cli no seu console. Você pode encontrar algumas vulnerabilidades depois de executar o comando (se estiver usando o npm), mas basta executarnpm audit fix no console para corrigi-las. Este comando varrerá o projeto em busca de quaisquer vulnerabilidades e também corrigirá problemas de compatibilidade instalando atualizações nessas dependências. Se você não quiser auto correção essas vulnerabilidades imediatamente, você pode executar uma Run Dry: por em execução npm audit fix --dry-run -json no console. Isso lhe dará uma idéia do que o comando npm audit fixfará, na forma de json no console.

EZCity
fonte
3

Eu tive o mesmo problema, e o que fiz que funciona para mim foi:

  1. Dentro do arquivo package.json, atualize a versão da CLI Angular para a desejada:

    "devDependencies": { ...
      "@angular/cli": "^6.0.8",
      ...
    }
    
  2. Exclua a node_modulespasta para limpar o projeto antes de atualizar as dependências com:

    npm install
    
    ng update @angular/cli
    
  3. Tente construir novamente meu projeto (a última e bem-sucedida tentativa)

    ng build --prod
    
Juan Monsalve
fonte
2

Para mim, o que funcionou foi criar um novo projeto Angular e apenas copiou o arquivo angular.json no projeto que teve um problema devido ao fato de o arquivo angular.json estar ausente .

Devman
fonte
1

Para mim, o problema era por causa da versão global @ angular / cli e @ angular / compiler-cli eram diferentes. Olhe para package.json .

...
"@angular/cli": "6.0.0-rc.3",
"@angular/compiler-cli": "^5.2.0",
...

E se eles não corresponderem, atualize ou faça o downgrade de um deles.

Filip Molcik
fonte
1

Eu também enfrentei o mesmo problema e acabei de executar o comando abaixo.

ng update @ angular / cli --migrate-only --from = 1.6.4

Simplesmente exclua angular-cli.jsone crie angular.json. Você pode encontrar isso nos logs.

Depois de iniciar a execução. Você poderá ver os registros abaixo em seu terminal.

        Updating karma configuration
        Updating configuration
        Removing old config file (.angular-cli.json)
        Writing config file (angular.json)
        Some configuration options have been changed, please make sure to update any                                     
        npm scripts which you may have modified.
        DELETE .angular-cli.json
        CREATE angular.json (3599 bytes)
        UPDATE karma.conf.js (962 bytes)
        UPDATE src/tsconfig.spec.json (324 bytes)
        UPDATE package.json (1405 bytes)
        UPDATE tsconfig.json (407 bytes)
        UPDATE tslint.json (3026 bytes)
Ambuj Khanna
fonte
0

Confira este link para migrar do Angular 5.2 para o 6. https://update.angular.io/

A atualização para a versão 8.9 funcionou para mim. insira a descrição da imagem aqui

raga
fonte
0

Para mim, o problema era que eu tinha uma pasta de projeto angular dentro de uma pasta de projeto do rails e executei todos os comandos de atualização angular na pasta pai do rails, em vez da pasta angular real.

Niek
fonte
0

Eu estava recebendo essa mensagem de erro dentro de um contêiner de docker. Eu resolvi adicionando:

WORKDIR /usr/src

para Dockerfile.

Nae
fonte
0

Eu tive o mesmo problema e descobri que não havia package.json no meu projeto (mas apenas o package-lock.json). Eu então

  1. restaurou o package.json do controle de origem
  2. desinstalou as versões angular-cli global e local (como a instrução diz)
  3. seguiu o procedimento de atualização padrão

..e tudo deu certo. Demorou um pouco para descobrir, mas isso fez por mim.

Stefan de Groot
fonte
0
~/Desktop $ ng serve

Não foi possível encontrar o arquivo do espaço de trabalho local ('angular.json').

Erro: não foi possível encontrar o arquivo do espaço de trabalho local ('angular.json').

at WorkspaceLoader._getProjectWorkspaceFilePath (/usr/lib/node_modules/@angular/cli/models/workspace-loader.js:37:19)
at WorkspaceLoader.loadWorkspace (/usr/lib/node_modules/@angular/cli/models/workspace-loader.js:24:21)
at ServeCommand._loadWorkspaceAndArchitect (/usr/lib/node_modules/@angular/cli/models/architect-command.js:180:32)
at ServeCommand.<anonymous> (/usr/lib/node_modules/@angular/cli/models/architect-command.js:47:25)
at Generator.next (<anonymous>)
at /usr/lib/node_modules/@angular/cli/models/architect-command.js:7:71
at new Promise (<anonymous>)
at __awaiter (/usr/lib/node_modules/@angular/cli/models/architect-command.js:3:12)
at ServeCommand.initialize (/usr/lib/node_modules/@angular/cli/models/architect-command.js:46:16)
at Object.<anonymous> (/usr/lib/node_modules/@angular/cli/models/command-runner.js:87:23)

Isso ocorre porque não escolhi o diretório do projeto Angular.

Deve ser como:

~ / Desktop / angularproject $ ng servir

Manu RS
fonte
0

Eu estava tentando definir meu aplicativo Ionic 4 para ser executado como um pwa. Quando executo o comando:

ng add @angular/pwa

... recebeu a mensagem de erro. Após algumas tentativas e erros, descobri que, quando meu projeto foi criado, o comando start estava errado. Eu estava usando uma versão Ionic 3:

ionic start myApp tabs --type=ionic-angular

E o correto é:

ionic start myApp tabs --type=angular

sem tipo 'iônico'. Isso resolveu o erro.

Nowdeen
fonte
0

Basta verificar seu diretório, você deve executar "ng serve" no mesmo diretório em que criou o projeto.

Então, primeiro entre no diretório do seu projeto.

Satywan Kumar
fonte
0

Para pessoas que simplesmente clonaram um projeto e tentaram executá-lo, é necessário executar npm installprimeiro. Eu esqueci totalmente de executar isso e estava simplesmente executando ng serveantes de instalar os módulos do nó.

Sagar Khatri
fonte