tsconfig.json: Build: W pliku konfiguracyjnym nie znaleziono danych wejściowych

136

Mam podstawowy projekt ASP.NET i pojawia się ten błąd, gdy próbuję go zbudować:

error TS18003: Build:No inputs were found in config file 'Z:/Projects/client/ZV/src/ZV/Scripts/tsconfig.json'. Specified 'include' paths were '["**/*"]' and 'exclude' paths were '["../wwwroot/app","node_modules/*"]'.
1>         The command exited with code 1.
1>       Done executing task "VsTsc" -- FAILED.

To jest mój tsconfig.jsonplik:

{
  "compileOnSave": true,
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [ "es5", "dom" ],
    "module": "commonjs",
    "moduleResolution": "node",
    "noEmitOnError": true,
    "noImplicitAny": false,
    "outDir": "../wwwroot/app/",
    "removeComments": false,
    "sourceMap": true,
    "target": "es6"
  },
  "exclude": [
    "../wwwroot/app",
    "node_modules/*"
  ]
}

Czy to błąd, czy robię coś nie tak? Niedawno zaktualizowałem program Visual Studio 2015 do aktualizacji 3. Czy ktoś napotkał to wcześniej?

krucyfiks
źródło
5
To jest zamierzone zachowanie. Musisz mieć coś do skompilowania.
Aluan Haddad
1
@AluanHaddad Stwierdzasz to tak, jakby to był fakt. Czy możesz przedstawić dowód na swoje twierdzenie.
Serj Sagan
Twoje źródło powinno znajdować się tam, gdzie wskazujesz w „uwzględnieniu” na tsconfig
Mohammad Kermani

Odpowiedzi:

245

Dodaj pusty plik skryptu do folderu skryptów maszynisty (lokalizacja pliku tsconfig), aby spełnić wymagania kompilatora skryptu.

krucyfiks
źródło
59
co to znaczy?
Christian Matthew
21
@Christian Matthew Oznacza to, że musisz dodać co najmniej jeden plik maszynopisu do folderu, w którym Twoja aplikacja ma spełniać wymagania kompilatora maszynopisu.
Rood
12
Co masz na myśli przez folder skryptów. Czy możesz wyjaśnić więcej?
San Jaisy,
1
Jak na ironię ... użyłem tej odpowiedzi dawno temu (dodałem tsconfig i rozwiązałem ten problem). Kiedy dodałem Vue do projektu, problem pojawił się ponownie ... więc musiałem następnie usunąć tsconfig, który dodałem w przeszłości i zadziałało: P
joshmcode
1
Dzięki. Pracuje dla mnie. Ale czy ktoś może wyjaśnić, co tak naprawdę się dzieje?
DriLLFreAK100
60

Możesz także spróbować ponownie uruchomić edytor kodu. To też działa dobrze.

desoga
źródło
Wow, to zadziałało dla mnie!
JavaRunner
20

W ogóle nie używam TypeScript w tym projekcie, więc radzenie sobie z tym jest dość frustrujące. Naprawiłem to, dodając tsconfig.json i pusty plik file.ts do katalogu głównego projektu. Plik tsconfig.json zawiera to:

{
  "compilerOptions": {

    "allowJs": false,
    "noEmit": true // Do not compile the JS (or TS) files in this project on build

  },
  "compileOnSave": false,
  "exclude": [ "src", "wwwroot" ],
  "include": [ "file.ts" ]
}
TreeAndLeaf
źródło
Dzięki, ten pracował dla mnie. Więc to tylko problem z aktualizacją edytora VS Code, który nie
dotyczy Reacta
17

Jeśli masz includetablicę (na co prawdopodobnie skarży się linter TypeScript):

tsconfig.json

{
  ...
  "include": [
    "./src/"
  ],
}

i używasz VSCode, możesz bardzo łatwo zrestartować serwer TS w edytorze, aby poprosić go o ponowną ocenę pliku.

CMD+ SHIFT+ P(na komputerze Mac) otworzy wiersz polecenia, a następnie znajdzie TypeScript: Restart TS serverpolecenie

wprowadź opis obrazu tutaj

FrostyDog
źródło
Jak uzyskać polecenie TypeScript ? Mam tylko np. File , Git , GitLens , etc
Leo
1
@Leo upewnij się, że przeglądasz plik .js/ .jsx/ .ts/ .tsx, gdy szukasz polecenia. Na przykład polecenie nie jest dostępne podczas przeglądania .htmlpliku
FrostyDog
10

Jeśli używasz kodu VS do edycji, spróbuj ponownie uruchomić edytor. Ten scenariusz rozwiązał mój problem. Myślę, że jest to problem z pamięcią podręczną edytora.

Susampath
źródło
8

Kiedy tworzysz tsconfig.jsonplik przez tsc --init, to komentuje katalog plików wejściowych i wyjściowych. To jest główna przyczyna błędu.

Aby obejść problem, odkomentuj te dwie linie:

"outDir": "./", 
"rootDir": "./", 

Początkowo po usunięciu komentarza wyglądałoby to tak jak powyżej.

Ale wszystkie moje skrypty .ts znajdowały się w folderze src. Więc określiłem / src.

"outDir": "./scripts", 
"rootDir": "./src", 

Pamiętaj, że musisz określić lokalizację swoich skryptów .ts w katalogu rootDir.

Pran Kumar Sarkar
źródło
5

Otrzymuję ten błąd: „Nie znaleziono danych wejściowych w pliku konfiguracyjnym„ tsconfig.json ”. Określono ścieżki„ dołączenia ”i ścieżki '["**/*"]'„ wykluczenia ” '["**/*.spec.ts","app_/**/*.ts","**/*.d.ts","node_modules"]'.

Mam plik .tsconfig, który czyta pliki ts z folderu „./src”.

Problem polega na tym, że folder źródłowy nie zawiera plików .ts i używam tslint. Rozwiązałem problem, usuwając zadanie tslint z mojego pliku gulp. Ponieważ nie mam żadnych plików .ts do skompilowania i skopiowania. Mój problem zostanie rozwiązany w ten sposób.

Inukollu Hari krishna
źródło
4

dodaj lokalizację pliku .ts w tagu „include”, a następnie kompiluj dobrze. dawny.

"include": [
"wwwroot/**/*" ]
Rajat Kumar
źródło
3

Korzystając z Visual Studio Code , budując projekt (tj. Naciskając Ctrl + Shift + B ), przenosi plik .ts do folderu .vscode (nie wiem, dlaczego to robi), a następnie generuje błąd TS18003 . Co zrobiłem było przenieść moje .ts plik z folderu .vscode , z powrotem do głównego folderu i zbudować projekt ponownie.

Projekt zbudowano pomyślnie!

Randell Lamont
źródło
to stawia .tsconfig plik do folderu .vscode. Jeśli przeniesiesz go z folderu .vscode, może być konieczne zmodyfikowanie pliku .vscode / tasks.json, aby wskazywał nową lokalizację
głupiutki
3

Dodałem w katalogu głównym (Visual Studio)

{
  "compilerOptions": {
    "allowJs": true,
    "noEmit": true,
    "module": "system",
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "sourceMap": true
  },
  "include": [
    "**/*"
  ],
  "exclude": [
    "assets",
    "node_modules",
    "bower_components",
    "jspm_packages"
  ],
  "typeAcquisition": {
    "enable": true
  }
}
NicoJuicy
źródło
1
Po prostu pusty "exclude": [ "" ]też działa (aby zastąpić domyślny, który jest ./)
spygi
3

Mam wszystkie moje pliki .ts w srcfolderze, który jest rodzeństwem mojego tsconfig.json. Otrzymałem ten błąd, kiedy mój includewyglądał tak (wcześniej działał, niektóre uaktualnienia zależności spowodowały wyświetlenie błędu):

"include": [
    "src/**/*"
],

zmiana na to rozwiązała problem:

"include": [
    "**/*"
],
Corey Cole
źródło
1

Przy okazji, miałem ten sam problem.

Gdybyś miał mój przypadek, prawdopodobnie masz plik tsconfig.json nie w tym samym katalogu co plik .ts.

(W moim przypadku głupio miałem obok launch.json i tasks.json w folderze .vscode: P)

Tha Brad
źródło
a więc dokładnie na odwrót w porównaniu z odpowiedzią @Noximus: D
Tha Brad
1

Miałem istniejące pliki tsconfig dla 4 istniejących projektów w moim rozwiązaniu. Po aktualizacji do vs2017 napotkałem ten problem. Zostało to naprawione przez dodanie (rzekomo domyślnej) sekcji włączania i wyłączania do plików, zgodnie z opisem w NicoJuicy.

Elroy Flynn
źródło
1
"outDir"

Powinien być inny niż

"rootDir"

przykład

    "outDir": "./dist",
    "rootDir": "./src", 
FDisk
źródło
0

Jeśli nie chcesz kompilacji TypeScript, wyłącz ją w swoim .csprojpliku, zgodnie z tym postem .

Po prostu dodaj następujący wiersz do swojego .csprojpliku:

<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
RubbelDieKatz
źródło
0

Mam tsconfig.jsonplik, który nie dotyczy żadnych plików .ts. Znajduje się w osobnym folderze. Zamiast tego używam go tylko jako podstawy dla innych plików tsconfig za pośrednictwem "extends": "../Configs/tsconfig.json". Jak tylko zmieniłem nazwę podstawowego pliku konfiguracyjnego na coś innego, np. base-tsconfig.json(I zaktualizowałem extendsinstrukcje), błąd zniknął, a rozszerzenie nadal działało.

user764754
źródło
0

Otrzymałem ten sam błąd, aw moim przypadku był to wynikający z faktu, że vscode nie mógł rozpoznać .tspliku.

Widział to jako plik tekstowy i musiałem zmienić jego nazwę, aby usunąć jedną literę i dodać ją z powrotem, aby działała.

Bakhtiiar Muzakparov
źródło
0

Ciągle napotykałem ten problem podczas pakowania projektów do nugetów za pośrednictwem programu Visual Studio 2019. Po wielu latach szukania rozwiązania wydaje się, że rozwiązałem ten problem, postępując zgodnie z radą w tym artykule

MSBuild i Typescript

szczególnie część o tym, <TypeScriptCompile />gdzie zawarłem wszystkie moje zasoby .ts za pomocą operatora Include i wykluczyłem inne, takie jak node_modules za pomocą operatora Remove. Następnie usunąłem plik tsconfig.json w każdym nieprawidłowym projekcie i wygenerowano pakiety NuGet i nie było więcej błędów

Laurence73
źródło
0

Otrzymałem ten sam błąd, kiedy wykonałem kopię zapasową node_modulesfolderu w tym samym katalogu. Byłem w trakcie próby rozwiązania innego błędu kompilacji, kiedy to wystąpiło. Mam nadzieję, że ten scenariusz komuś pomoże. Usuń folder kopii zapasowej, a kompilacja zostanie ukończona.

chadiusvt
źródło