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"
