Błąd: nie można znaleźć pliku lokalnego obszaru roboczego („angular.json”)

189

Mam travis-cizintegrowany z moim koncie GitHub ( https://github.com/pradeep0601/Angular5-Router-App ).

Kiedy zaktualizowałem @angular/cliwersję z 1.7.4 do 6.0.0-rc.3, kompilacja zaczęła się nie powieść z błędem:

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

fragment package.json, aby lepiej zrozumieć działające środowisko:

    "@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
źródło
Napotkałem ten sam problem, i to było głupie, dzieje się tak, gdy używasz terminala z kodu Visual Studio i działa po przełączeniu na domyślną wersję cli!
Gilles Kagarama,

Odpowiedzi:

319

Właśnie miałem ten sam problem.

Jest to związane z wersją 6.0.0-rc.2, https://github.com/angular/angular-cli/releases :

Nowy format konfiguracji. Nowy plik można znaleźć pod angular.json (ale .angular.json jest również akceptowany). Uruchomienie aktualizacji projektu CLI 1.7 spowoduje przejście do nowej konfiguracji.

Musiałem wykonać:

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

To zostało usunięte .angular-cli.jsoni utworzone angular.json.

Jeśli prowadzi to do twojego projektu przy użyciu 1.7.4, zainstaluj lokalnie v6:

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

I spróbuj jeszcze raz zaktualizować swój projekt za pomocą:

ng update @angular/cli --migrate-only --from=1.7.4
Lenni
źródło
4
uruchomiony ng update @angular/cli --migrate-only --from=1.7.4wyniki w błąd: Collection "@schematics/angular/migrations/migration-collection.json" cannot be resolved.. jakiś sposób to naprawić?
GO VEGAN
1
Dostaję również opcję „Nieznana opcja:” --extractCss ”
Mohammed Barakat
8
Upewnij się, że twoje wersje npm i nodejs są aktualne, w przeciwnym razie prawdopodobnie wystąpi awaria. ng update @angular/clijest wszystkim, czego potrzeba.
rtaft,
1
@ user1932595 Musiałem uaktualnić @schematics/angulardo najnowszej wersji, aby obejść ten błąd.
bygrace,
2
Krótka uwaga powyżej. Usunięcie pliku .angula-cli.json stało się dla mnie dopiero po drugim uruchomieniu polecenia ng update.
Aggie Jon z 87
78

Otrzymywałem te same komunikaty o błędach. To był głupi błąd z mojej strony, nie byłem uruchomiony ng servew katalogu, w którym znajduje się mój projekt Angular. Upewnij się, że jesteś w odpowiednim katalogu (katalogu projektu) przed uruchomieniem tej komendy.

DRG
źródło
3
och, to szalone :)) dzięki, że zaoszczędziłem też wiele skomplikowanych problemów! czasami rozwiązania są bardzo proste
msanjay
popełnił ten sam błąd
Faizan Mubasher
Zrobiłem to samo. Tworzysz katalog do obsługi twojego projektu, a on tworzy inny katalog w tym katalogu (klapię się)
Jonathan
tj. nowa aplikacja my, cd moja aplikacja (widziałem ten komentarz wcześniej, ale zakładałem, że oznaczało to najwyższy poziom)
Tony
popełnił ten sam błąd, który uratowałeś mi dzień, Dzięki
Ahmed ElShemy,
36

W najnowszej wersji bez --migrate-onlyaktualizacji repo.

Zrobiłem aktualizację

Format konfiguracji Angular CLI został zmieniony, a istniejącą konfigurację można zaktualizować automatycznie, uruchamiając następujące polecenie:

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
źródło
RozumiemIncompatible peer dependencies found. See above.
Simon Baars,
Wystąpił nieoczekiwany błąd; Pakiet @ kątowy / flex-layout nie ma wersji null.
Prageeth godage
20

Cóż, napotkałem ten sam problem, jak tylko zaktualizowałem swoją angular cliwersję.

Wcześniej korzystałem z wersji 1.7.4, a teraz zaktualizowałem ją do angular cli 6.0.8.

Aby zaktualizować Angular Cli Global:

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

Aby zaktualizować program Angular Cli:

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

Aby naprawić problemy audytu po instalacji npm:

npm audit fix

Aby naprawić problem związany z „angular.json”:

ng update @angular/cli --migrate-only --from=1.7.4
Vikash Pandey
źródło
17

Odinstaluj starą wersję Angular cli i zainstaluj Angular CLI global:

Zaktualizuj pakiet globalny Angular cli do następnej wersji „@ angular / compiler-cli”: „^ 6.0.0”

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

Wygeneruj nowy projekt i domyślną aplikację, uruchamiając następujące polecenie:

ng new my-project
cd my-project
ng serve
Sanjay Kumar
źródło
7
nie używaj cli @ next, użyj cli @ latest, w przeciwnym razie otrzymasz wersje beta.
Switch
9

Spróbuj użyć poniższego polecenia:

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

Wykona poniższe

  • Aktualizacja konfiguracji karmy

  • Aktualizacja konfiguracji

  • Usuwanie starego pliku konfiguracyjnego (.angular-cli.json)

  • Zapisywanie pliku konfiguracyjnego (angular.json)

Pls zauważ, że powyższe polecenie powinno być uruchomione w folderze, w którym masz plik. angular-cli.jsoni zostanie zastąpiony przez angular.json.

TechSingh
źródło
Uruchomiłem polecenie kilka razy i plik angular.json nigdy się nie pojawia. Jeśli jednak usunę plik angular-cli.json, uruchom polecenie, plik angular-cli.json zostanie ponownie dodany. czego tu brakuje?
napisał
8

Jeśli nie znasz wersji, bieżący projekt został wykonany, możesz pominąć --frompolecenie i wpisać--migrate-only

ng update @ angular / cli --migrate-only

vipin cp
źródło
7

Jeśli wszelkiego rodzaju aktualizacja komandosów tego nie zrobi. Spróbuj usunąć pakiet-lock.json . A następnie uruchom instalację npm . Wykonałem dla mnie lewitację po przejściu ton aktualizacji komandosów.

Dennis Gadomski
źródło
Czy jest jakiś powód, aby nie przyjmować tego podejścia jako domyślnego (upuszczenie folderu node_modules i package-lock.json), a po prostu uruchomienie instalacji npm?
Wallace Howery,
4

Mi to pasuje:

Usunięty folder node_modules

Uruchom polecenie: npm install

(Jeśli to nie działa po raz pierwszy, powtórz to 2 lub 3 razy, Jest zabawne, ale działa dla mnie.)

Shubham Verma
źródło
4
Dlaczego powtórzenie tego procesu miałoby inny efekt niż za pierwszym razem?
Sledge
3

Sprawdź strukturę folderów, w której wykonujesz polecenie, powinieneś uruchomić polecenie „ng serve”, w którym powinien znajdować się plik angular.json.

plik angular.json zostanie wygenerowany domyślnie po uruchomieniu polecenia

npm install -g '@ angular / cli' ng nowa nazwa_projektu, następnie cd folder_projektu, a następnie uruchom serw. zadziałało dla mnie

Vinay Reddy
źródło
3

Po prostu uruchom ng update @angular/cli konsolę. Możesz znaleźć pewne luki w zabezpieczeniach po uruchomieniu polecenia (jeśli używasz npm), ale potem po prostu uruchomnpm audit fix konsolę, aby je naprawić. To polecenie przeskanuje projekt pod kątem luk w zabezpieczeniach, a także naprawi problemy ze zgodnością, instalując aktualizacje tych zależności. Jeśli nie te usterki natychmiast chcą naprawić auto, można przeprowadzić na sucho: przez uruchomiony npm audit fix --dry-run -json w konsoli. To da ci wyobrażenie o tym, co npm audit fixzrobi to polecenie , w postaci json w konsoli.

EZCity
źródło
3

Miałem ten sam problem i zadziałało dla mnie:

  1. W pliku package.json zaktualizuj wersję Angular CLI do żądanej:

    "devDependencies": { ...
      "@angular/cli": "^6.0.8",
      ...
    }
    
  2. Usuń node_modulesfolder, aby wyczyścić projekt przed zaktualizowaniem zależności za pomocą:

    npm install
    
    ng update @angular/cli
    
  3. Spróbuj zbudować ponownie mój projekt (ostatnia i udana próba)

    ng build --prod
    
Juan Monsalve
źródło
2

Dla mnie to, co działało było stworzenie nowego projektu kanciaste i właśnie skopiowany plik angular.json w projekcie, który miał problem ze względu na fakt, że plik angular.json został brakujący .

Devman
źródło
1

Dla mnie problem polegał na tym, że globalna wersja @ angular / cli i @ angular / compiler-cli były różne. Zajrzyj do package.json .

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

A jeśli nie pasują, zaktualizuj lub obniż jeden z nich.

Filip Molcik
źródło
1

Napotkałem również ten sam problem i właśnie wykonałem poniżej polecenia.

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

Po prostu usuwa angular-cli.jsoni tworzyangular.json . Możesz to znaleźć w logach.

Po rozpoczęciu wykonywania. Będziesz mógł zobaczyć poniższe dzienniki w swoim terminalu.

        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
źródło
0

Sprawdź ten link, aby przeprowadzić migrację z Angulara 5.2 do 6. https://update.angular.io/

Uaktualnienie do wersji 8.9 działało dla mnie. wprowadź opis zdjęcia tutaj

raga
źródło
0

Dla mnie problemem było to, że mam folder projektu kątowego w folderze projektu szyny i uruchomiłem wszystkie polecenia aktualizacji kątowej w folderze nadrzędnym szyny, a nie w folderze rzeczywistym.

Niek
źródło
0

Miałem ten komunikat o błędzie w kontenerze dokera. Rozwiązałem to, dodając:

WORKDIR /usr/src

do Dockerfile.

Nie
źródło
0

Miałem ten sam problem i stwierdziłem, że w moim projekcie nie było pliku package.json (ale tylko pakiet-lock.json). Ja wtedy

  1. przywrócono plik package.json z kontroli źródła
  2. odinstalował globalne i lokalne wersje angli-cli (jak mówi instrukcja)
  3. postępował zgodnie ze standardową procedurą aktualizacji

... i wszystko dobrze się ułożyło. Zajęło mi to trochę czasu, aby to rozgryźć, ale to mi zrobiło.

Stefan de Groot
źródło
0
~/Desktop $ ng serve

Nie można znaleźć lokalnego pliku obszaru roboczego („angular.json”).

Błąd: nie można znaleźć pliku lokalnego obszaru roboczego („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)

Jest tak, ponieważ nie wybrałem katalogu projektu Angular.

Powinno być jak:

~ / Desktop / angularproject $ ng służyć

Manu RS
źródło
0

Próbowałem ustawić moją aplikację Ionic 4 na działanie jako pwa. Po uruchomieniu polecenia:

ng add @angular/pwa

... dostał komunikat o błędzie. Po kilku próbach i błędach odkryłem, że kiedy mój projekt został utworzony, polecenie start było niepoprawne. Korzystałem z wersji Ionic 3:

ionic start myApp tabs --type=ionic-angular

Prawidłowe jest:

ionic start myApp tabs --type=angular

bez typu „jonowego”. To rozwiązało błąd.

Nowdeen
źródło
0

Po prostu sprawdź swój katalog, musisz uruchomić „ng serve” w tym samym katalogu, w którym utworzyłeś projekt.

Więc najpierw wejdź do katalogu projektu.

satywan kumar
źródło
0

W przypadku osób, które po prostu sklonowały projekt i próbują go uruchomić, musisz npm installnajpierw uruchomić . Całkowicie zapomniałem to uruchomić i po prostu działałem ng serveprzed instalacją modułów węzłów.

Sagar Khatri
źródło