„Nie znaleziono polecenia tsc” w skrypcie kompilacji

90

Chcę zainstalować maszynopis, więc użyłem następującego polecenia:

npm install -g typescript 

i test tsc --version, ale wyświetla tylko „nie znaleziono polecenia tsc”. Próbowałem wielu sposobów, jak sugerowano w stackoverflow, github i innych witrynach. ale to nie działa. Skąd mogłem wiedzieć, że maszynopis jest zainstalowany i gdzie się znajduje.

mój system operacyjny to Unix, OS X El Capitan 10.11.6, wersja węzła to 4.4.3, wersja npm to 3.10.5

Aung Thet
źródło
1
Uwzględnij swój system operacyjny i jego wersję oraz wersje Node.js i NPM w swoim pytaniu.
cartant
5
Najprawdopodobniej masz problem z konfiguracją węzła / npm; na przykład odpowiedni katalog npm nie znajduje się na Twojej ścieżce. Miejsce instalacji skryptu maszynowego zależy od środowiska, ale możesz zacząć od npm list -g. Lub spróbuj npm config get prefix(twoje pakiety będą normalnie znajdować się w binkatalogu poniżej). Zobacz także to pytanie .
Dziękuję, rozumiem. Zapomniałem wyeksportować ścieżkę prefiksu.
Aung Thet,
Możesz również sprawdzić moją odpowiedź
Zameer Ansari

Odpowiedzi:

124

Kilka wskazówek w porządku

  • zrestartuj terminal
  • uruchom ponownie maszynę
  • zainstaluj ponownie nodejs + i uruchom npm install typescript -g

Jeśli nadal nie działa, uruchom, npm config get prefixaby zobaczyć, gdzie npm install -g umieszcza pliki (dołącza bindo wyjścia) i upewnij się, że znajdują się one w ścieżce (robi to konfiguracja node js. Może zapomniałeś zaznaczyć tę opcję).

basarat
źródło
4
Dzięki, mam to. Jasne, zapomniałem przypisać ścieżkę `export PATH = / prefix'sPath / bin: $ PATH 'i ( docs.npmjs.com/getting-started/fixing-npm-permissions ) również ta witryna sugeruje w ten sposób. Spędziłam na to cały dzień :).
Aung Thet
stackoverflow.com/a/46783952/495157 - Ta odpowiedź jest bardziej pouczająca - szczególnie jeśli zajmujesz się programowaniem Angular / Ionic.
JGFMK,
1
Musiałem odinstalować node / npm. Używane napar zainstalować NVM, a następnie zainstalować węzeł używając nvm install nodenastępnie sudo npm install -g typescriptdostać się tsc --versiondo pracy
alex
1
Zrobiłem tylko "npm install maszynopis -g" i zadziałało idealnie
pixparker
Aktualizacja wersji węzła pomogła mi.
JavaDeveloper
30

Musiałem to zrobić:

npx tsc app.ts
Oscar Jovanny
źródło
2
Pomogło mi to, ale żeby wyjaśnić, musiałem to zrobić npm install --save-dev typescript && npx tsc --version && npx tsc <filename>. Ten został zainstalowany tsc, pomyślnie przetestowany z --versioni pomyślnie skompilowany mój tsplik do jspliku.
Jason Fry
To zadziałało, ale właśnie użyłem npx tsc. Dodanie tsc prawdopodobnie rozwiązuje potrzebę użycia npx.
foureyedraven
9

wszyscy mieszacie się z globalnymi instalacjami i plikami -path. Nawet mały błąd może uszkodzić każdy projekt, który kiedykolwiek napisałeś, a resztę nocy spędzisz na próbach ponownego uruchomienia console.log ('cześć'): - =.

Jeśli w swoim projekcie uruchomiłeś npm i typescript --save-dev - po prostu spróbuj uruchomić:

npx tsc

i sprawdź, czy to działa, zanim zaczniesz bawić się globalnymi rzeczami (chyba że naprawdę wiesz, co robisz)

Twoje zdrowie

Per Høyer
źródło
8

Jeśli polecenie TSC nie zostanie znalezione w systemie MacOS po prawidłowej instalacji języka TypeScript (przy użyciu następującego polecenia $ sudo npm install -g typescript:, upewnij się, że /binścieżka węzła została dodana do PATHzmiennej w .bash_profile.

Otwórz .bash_profileza pomocą terminala: $ open ~ / .bash_profile;

Edytuj / Zweryfikuj profil basha, aby zawierał następujący wiersz ( używając ulubionego edytora tekstu ):

export PATH="$PATH:"/usr/local/lib/node_modules/node/bin"";

Załaduj najnowszy profil bash za pomocą terminala source ~/.bash_profile:;

Wreszcie, spróbuj polecenia: $ tsc --version.

Pandi
źródło
5

Znalazłem łatwą poprawkę dla Maca. Po prostu uruchom te polecenia:

sudo npm install -g concurrently
sudo npm install -g lite-server
sudo npm install -g typescript

Nic nie działało poza tym dla mnie.

Teja
źródło
4

Po znalezieniu wszystkich rozwiązań tego małego problemu tylko dla systemu macOS.
Wreszcie dostałem, że mój TSC działa na moim MacBooku Pro.

To może być najlepsze rozwiązanie, jakie znalazłem.

Dla wszystkich użytkowników macOS, zamiast instalować maszynopis przy użyciu npm, możesz zainstalować maszynopis za pomocą homebrew.

-> brew install typescript

Zobacz załączony zrzut ekranu w celach informacyjnych.

Dziękuję Ci.

wprowadź opis obrazu tutaj

Marjun
źródło
3

Wiem, że to stare pytanie, ale miałem ten sam problem na Ubuntu 19.10 LTS.

Aby rozwiązać ten problem, uruchomiłem następujące polecenie:

$ sudo apt install node-typescript

Potem mogłem używać tsc.

Mam nadzieję, że to pomoże :)

Rodrigo Marques
źródło
3

Ta odpowiedź jest specyficzna dla iTermV2 na MAC

  1. Przede wszystkim musiałem zainstalować jako sudo(admin) podczas instalacji NPM

    sudo npm install -g maszynopis

  2. NPM instaluje biblioteki w /usr/local/Cellar/node/<your latest version>/lib/node_modules/typescriptfolderze i dowiązania symboliczne w/usr/local/Cellar/node/<your latest version>/bin/tsc

stąd poszedłem ~ / .zshrc (.bashrc, jeśli używasz bash) i dodałem /usr/local/Cellar/node/<your latest version>/bindo $ PATH.

  1. przeładuj profil powłoki przez source ~/.zshrc(.bashrc w twoim przypadku)
sjs
źródło
Hm dobrze wiedzieć. Ale kto od teraz zajmie się tymi linkami?
Chris Pillen
2

Jedynym rozwiązaniem które działało u mnie było wstawienie npx tsc -v lub na kompilację npx tsc salida.ts

„salida.ts” to nazwa pliku

juan.pedro.v
źródło
0

Rozwiązanie nieadministracyjne

Nie mam uprawnień administratora, ponieważ ta maszyna została wydana przez moją pracę.

  • pobierz ścieżkę, w której instalowane są moduły węzłów i skopiuj do schowka
    • npm config get prefix | clip
    • nie masz klipu? po prostu skopiuj wyjście znpm config get prefix
  • dodaj skopiowaną ścieżkę do zmiennych środowiskowych
    • moja preferowana metoda (Windows)
    • (Ctrl + R), wklej rundll32 sysdm.cpl,EditEnvironmentVariables
    • w sekcji Zmienne użytkownika kliknij dwukrotnie Ścieżka > Nowa > Wklej skopiowaną ścieżkę
codeherk
źródło
0

Żadna z powyższych odpowiedzi nie rozwiązuje mojego problemu. Faktem jest, że mój projekt nie miał zainstalowanego skryptu typu. Ale lokalnie biegałem npm install -g typescript. Więc nie zauważyłem, że zależność węzła maszynopisu nie występuje w moim pakiecie json.

Kiedy umieściłem go na serwerze i uruchomiłem npm install, npx tscotrzymałem nie znaleziono tsc. W rzeczywistości zdalny serwer nie miał zainstalowanego maszynopisu. To było ukryte z powodu mojej lokalnej globalnej instalacji maszynopisu.

Romain TAILLANDIER
źródło
0
  1. Sprawdź swoją npmwersję

  2. Jeśli nie jest poprawnie zainstalowany, zainstaluj go najpierw

  3. uruchom to polecenie npm install typescript -g

  4. teraz tsc <file_name>.ts

  5. Stworzy odpowiedni .jsplik. na przykład<file_name>.js

  6. Spróbuj teraz node <file_name>.js

Akash Dutta
źródło
-1

Dla Windowsa:

Dodaj ścieżkę za pomocą polecenia jak poniżej w wierszu polecenia:
path =% path%; C: \ Users \\ npm

Podobnie jak w moim przypadku powyższa ścieżka nie została zarejestrowana dla polecenia.

% userprofile% w uruchomionych oknach da ci ścieżkę do C: \ users \

Durgesh
źródło
-1

Działa to doskonale na Macu. Przetestowano na macOS High Sierra

sudo npm install -g concurrently
sudo npm install -g lite-server
sudo npm install -g typescript
tsc --init

Spowoduje to wygenerowanie pliku tsconfig.json.

alexeis
źródło
concurrentlyi lite-servermają niewiele wspólnego z możliwością uruchomienia tscpolecenia. Nie radzę instalować niepotrzebnych zależności.
andras
-1

Rozwiązałem to na moim komputerze, uruchamiając po prostu sudo npm installw katalogu, w którym pojawia się błąd.

mbspark
źródło
Nie powinieneś być zmuszany do sudoinstalowania pakietów. Następnie należy ponownie zainstalować npm. Zobacz więcej Do not sudo npm
GLindqvist