Website-Suche

typescript - nest start entfernt meine JSON-Dateien aus dem dist-Ordner


Wenn ich meine NestJS-Anwendung baue, müssen bestimmte JSON-Dateien in das dist kopiert werden. Besonders habe ich einen "engines"-Ordner, und ich benötige, dass die JSON-Dateien im dist/ und prod genauso sind wie im src/engines.

Allerdings entfernt 'nest start' den dist-Ordner und erstellt ihn nur mit d.ts, js und js.map neu, und meine JSON-Dateien werden entfernt.

Ich habe versucht, Folgendes in meinem package.json scripts zu machen:

"copy:json": "copyfiles -u 2 src/engines/**/*.json dist/engines",
"start": "nest start && yarn copy:json",
"start:dev": "nest start --watch && yarn copy:json",
"start:debug": "nest start --debug --watch && yarn copy:json",
"start:prod": "node dist/main && yarn copy:json",

Ich weiß nicht warum, aber wenn ich start:dev ausführe, habe ich immer noch eine json-Datei in meinem dist-Verzeichnis. Das yarn copy:json funktioniert allein gut (kopiert die richtigen Dateien an den richtigen Ort)

Antwort #1

Du könntest die *.json-Dateien zu den Assets hinzufügen, die beim Build kopiert werden.

z. B. in Ihrer nest-cli.json:

  "compilerOptions": {
    "deleteOutDir": true,
    "assets": ["engines/**/*.json"],
    "watchAssets": true
  }

Quelle

Antwort #2

Lösung: Vermeiden Sie src in der Pfadkonfiguration für Assets

Während viele Beispiele im Internet das Präfix src im Pfad enthalten (z.B. src/engines/**/*.json), ist es nicht notwendig. Der richtige Ansatz ist einfach, src aus dem Pfad wegzulassen.

Zum Beispiel: "include": "engines/**/*.json"

Verwandte Artikel