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?


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.


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.


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" ]
}

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


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.


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.


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.


4

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

"include": [
"wwwroot/**/*" ]

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!


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
  }
}

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": [
    "**/*"
],


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)


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.


1
"outDir"

Powinien być inny niż

"rootDir"

przykład

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

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>

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.


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.


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


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.