Errore: impossibile trovare il file dell'area di lavoro locale ('angular.json')


189

Mi sono travis-ciintegrato con il mio account GitHub ( https://github.com/pradeep0601/Angular5-Router-App ).

Quando ho aggiornato la @angular/cliversione dalla 1.7.4 alla 6.0.0-rc.3, la build ha iniziato a fallire con un errore:

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 per comprendere meglio l'ambiente in esecuzione:

    "@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",

Ho riscontrato lo stesso problema, ed è stato sciocco, ciò si verifica quando si utilizza il terminale dal codice Visual Studio e funziona quando si passa a Cli predefinito di Windows!
Gilles Kagarama,

Risposte:


319

Ho appena avuto lo stesso problema.

È correlato alla versione v6.0.0-rc.2, https://github.com/angular/angular-cli/releases :

Nuovo formato di configurazione. Il nuovo file può essere trovato su angular.json (ma è accettato anche .angular.json). L'esecuzione di un aggiornamento su un progetto CLI 1.7 consente di passare alla nuova configurazione.

Ho dovuto eseguire:

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

Questo rimosso .angular-cli.jsone creato angular.json.

Se questo porta al tuo progetto usando 1.7.4, installa v6 localmente:

npm install --save-dev @angular/cli@v6.0.0-rc.4

E prova di nuovo ad aggiornare il tuo progetto con:

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

4
esecuzione ng update @angular/cli --migrate-only --from=1.7.4risultati in errore: Collection "@schematics/angular/migrations/migration-collection.json" cannot be resolved.. Qualche modo per aggiustarlo?
GO VEGAN

1
Ricevo anche `Opzione sconosciuta: '--extractCss'`
Mohammed Barakat

8
Assicurati che le tue versioni npm e nodejs siano aggiornate o che probabilmente otterrai un errore. ng update @angular/cliè tutto ciò che serve.
dopo

1
@ user1932595 Ho dovuto eseguire @schematics/angularl' aggiornamento alla versione più recente per superare l'errore.
bygrace,

2
Una breve nota sopra. La rimozione di .angula-cli.json non è avvenuta per me fino alla seconda esecuzione del comando ng update.
Aggie Jon dell'87

78

Stavo ricevendo gli stessi messaggi di errore. È stato un errore sciocco da parte mia, non stavo correndo ng servenella directory in cui si trova il mio progetto Angular. Assicurarsi di essere nella directory corretta (directory del progetto) prima di eseguire questo comando.


3
oh, è pazzesco :)) grazie per avermi salvato un sacco di complesse procedure di risoluzione dei problemi anche per me! a volte le soluzioni sono davvero semplici
msanjay

stava facendo lo stesso errore
Faizan Mubasher il

Ho fatto la stessa cosa Crei una directory per servire il tuo progetto, e crea un'altra directory all'interno di quella directory (schiaffeggia me stesso)
Jonathan,

vale a dire ng nuova my-app, cd my-app (ho visto questo commento prima ma ho pensato che significasse quello di primo livello)
tony

stava facendo lo stesso errore che mi hai salvato la giornata, grazie
Ahmed ElShemy il

36

Con la versione recente, senza --migrate-onlyho aggiornato il repository.

Ho fatto l' aggiornamento

Il formato di configurazione della CLI angolare è stato modificato e la configurazione esistente può essere aggiornata automaticamente eseguendo il comando seguente:

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)

RicevoIncompatible peer dependencies found. See above.
Simon Baars

Si è verificato un errore imprevisto; package @ angular / flex-layout non ha versione null.
Prageeth godage il

20

Bene, ho riscontrato lo stesso problema non appena ho aggiornato la mia angular cliversione.

Prima usavo la 1.7.4 e proprio ora l'ho aggiornato a angular cli 6.0.8.

Per aggiornare Angular Cli globale:

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

Per aggiornare lo sviluppatore Angular Cli:

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

Per risolvere i problemi di controllo dopo l'installazione di npm:

npm audit fix

Per risolvere il problema relativo a "angular.json":

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

17

Disinstallare la vecchia versione di Angular cli e installare Angular CLI global:

Aggiorna il pacchetto globale di Angular cli alla versione successiva, "@ angular / compiler-cli": "^ 6.0.0"

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

Generare un nuovo progetto e un'applicazione predefinita eseguendo il comando seguente:

ng new my-project
cd my-project
ng serve

7
non usare cli @ next, usa cli @ latest o otterrai le versioni beta.
Passa dal

9

Prova a usare il comando seguente:

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

Eseguirà il seguito

  • Aggiornamento della configurazione del karma

  • Aggiornamento della configurazione

  • Rimozione del vecchio file di configurazione (.angular-cli.json)

  • Scrittura del file di configurazione (angular.json)

Si prega di notare che il comando sopra dovrebbe essere eseguito nella cartella in cui si dispone di file. angular-cli.jsone sarà quindi sostituito da angular.json.


Ho eseguito il comando più volte e il file angular.json non viene mai visualizzato. Tuttavia, se cancello il file angular-cli.json, eseguo il comando, il file angular-cli.json viene aggiunto di nuovo. cosa mi sto perdendo qui?
jgritten,

8

Se non si conosce la versione, è stato creato il progetto corrente, è possibile omettere il --fromcomando e digitare--migrate-only

di update @ angular / cli - solo migrazione


7

Se tutti i tipi di aggiornamento dei commando non lo faranno. Prova a eliminare package-lock.json . E quindi eseguire npm install . Ha fatto il trucco per me dopo aver attraversato tonnellate di aggiornamento commando.


Qualche motivo per non adottare questo approccio come predefinito (eliminando la cartella node_modules e package-lock.json) e eseguendo solo npm install?
Wallace Howery,

4

Per me funziona:

Elimina cartella node_modules

Esegui comando: npm install

(Se non funziona per la prima volta, ripeti 2 o 3 volte, è divertente ma funziona per me.)


4
Perché ripetere questo processo avrebbe un effetto diverso rispetto alla prima volta?
Slitta

3

Controlla la struttura della cartella in cui stai eseguendo il comando, dovresti eseguire il comando 'ng serve' dove dovrebbe esserci un file angular.json nella struttura.

Il file angular.json verrà generato per impostazione predefinita quando eseguiamo il comando

npm install -g '@ angular / cli' di nuovo Nome_progetto quindi cd cartella_progetto quindi, esegui ng serve. ha funzionato per me


3

Basta eseguire ng update @angular/cli nella console. Potresti trovare alcune vulnerabilità dopo aver eseguito il comando (se utilizzi npm), ma esegui semplicemente npm audit fixnella console per risolverle. Questo comando eseguirà la scansione del progetto alla ricerca di eventuali vulnerabilità e risolverà anche i problemi di compatibilità installando gli aggiornamenti a queste dipendenze. Se non si desidera correzione automatica queste vulnerabilità immediatamente, è possibile eseguire un Run Dry: dalla eseguendo npm audit fix --dry-run -json nella console. Questo ti darà un'idea di cosa npm audit fixfarà il comando , sotto forma di json nella console.


3

Ho avuto lo stesso problema e quello che ho fatto che funziona per me è stato:

  1. Nel file package.json, aggiorna la versione della CLI angolare a quella desiderata:

    "devDependencies": { ...
      "@angular/cli": "^6.0.8",
      ...
    }
    
  2. Elimina la node_modulescartella, al fine di pulire il progetto prima di aggiornare le dipendenze con:

    npm install
    
    ng update @angular/cli
    
  3. Prova a ricostruire il mio progetto (l'ultimo e riuscito tentativo)

    ng build --prod
    

2

Per me quello che ha funzionato è stato la creazione di un nuovo progetto di angolare e appena copiato il file angular.json nel progetto che ha avuto un problema a causa del fatto che il file angular.json era manca .


1

Per me il problema era dovuto alla versione globale @ angular / cli e @ angular / compilatore-cli erano diversi. Cerca in package.json .

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

E se non corrispondono, aggiornano o effettuano il downgrade di uno di essi.


1

Ho anche affrontato lo stesso problema e ho appena eseguito sotto il comando.

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

Elimina angular-cli.jsone crea semplicemente angular.json. Puoi trovarlo nei registri.

Una volta avviata l'esecuzione. Sarai in grado di vedere i registri di seguito nel tuo terminale.

        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)


0

Per me, il problema era che ho una cartella di progetto angolare all'interno di una cartella di progetto di rotaie e ho eseguito tutti i comandi di aggiornamento angolare nella cartella principale di rotaie anziché la cartella angolare effettiva.


0

Stavo avendo questo messaggio di errore all'interno di un contenitore finestra mobile. L'ho risolto aggiungendo:

WORKDIR /usr/src

su Dockerfile.


0

Ho avuto lo stesso problema e ho scoperto che non c'era package.json nel mio progetto (ma solo package-lock.json). io poi

  1. ripristinato package.json dal controllo del codice sorgente
  2. disinstallato le versioni globale e locale di angular-cli (come dice l'istruzione)
  3. ha seguito la procedura di aggiornamento standard

..e tutto ha funzionato bene. Ci è voluto un po 'per capirlo, ma è stato per me.


0
~/Desktop $ ng serve

Impossibile trovare il file dell'area di lavoro locale ('angular.json').

Errore: impossibile trovare il file dell'area di lavoro locale ('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)

Questo perché non ho scelto la directory del progetto Angular.

Dovrebbe essere come:

~ / Desktop / angularproject $ ng serve


0

Stavo cercando di impostare la mia app Ionic 4 per funzionare come pwa. Quando eseguo il comando:

ng add @angular/pwa

... ho ricevuto il messaggio di errore. Dopo qualche tentativo ed errore ho scoperto che quando il mio progetto è stato creato il comando di avvio era sbagliato. Stavo usando una versione di Ionic 3:

ionic start myApp tabs --type=ionic-angular

E il corretto è:

ionic start myApp tabs --type=angular

senza tipo "ionico". Questo ha risolto l'errore.


0

Controlla la tua directory, devi eseguire "ng serve" sulla stessa directory in cui hai creato il progetto.

Quindi, prima inserisci nella directory del tuo progetto.


0

Per le persone che hanno semplicemente clonato un progetto e hanno cercato di eseguirlo, è necessario eseguire npm installprima. Ho completamente dimenticato di eseguire questo ed ero semplicemente in esecuzione ng serveprima di installare i moduli di nodo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.