Ich probiere npm als Build-Tool aus.So verwenden Sie package.json-Skripts zum Kopieren von Dateien mit bestimmten Dateierweiterung
Ein Stolperstein, den ich festgestellt habe, ist, dass ich Javascript-Dateien von einem Ordner zum anderen kopieren muss. Der Quellordner enthält Typoskript-Dateien, Javascript-Dateien und Kartendateien, aber im Zielordner bin ich nur an Javascript-Dateien interessiert.
Ich möchte keine Kopie-Anweisung für jede Datei erstellen, aber alle .js-Dateien kopieren möchten. Außerdem enthält mein Quellordner Unterordner, die auch Javascript-Dateien enthalten. Diese müssen ebenfalls kopiert werden und die Unterordnerstruktur beibehalten.
Was ich versucht habe, ist NCP mit einem Filter zu verwenden, aber ich kann den Filter nicht funktionieren. Ich habe die Regex im Filter getestet und es scheint gut zu funktionieren. Der Test wurde unter Regex Tester mit regulärem Ausdruck .*\.js$
und Teststrings wie main.ts
, main.js
main.js.map
usw. durchgeführt, und nur die .js-Zeichenfolgen wurden abgeglichen.
Mein Paket json enthält die folgenden (abgekürzt):
{
"scripts": {
"copy": "ncp scripts wwwroot/scripts --filter=\".*(\\\\.js$)\""
},
"devDependencies": {
"ncp": "2.0.0.0"
}
}
Da meine Regex in einer Zeichenkette in einem String ist, ich habe es doppelt entkommen. Ich habe auch andere Varianten ausprobiert, zum Beispiel:
--filter=/.*\.js$/g - compilation error
--filter=/.*\\.js$/g - no files copied
--filter=\".*\\.js$\" - no files copied
--filter=\"/.*\\.js$/g\" - no files copied
(no filter) - all files copied
ich in keiner Weise zu NCP verheiratet bin. Wenn etwas anderes besser funktioniert, werde ich das verwenden.
Also: Wie kann ich innerhalb von package.json die Skripts nur Dateien mit einer spezifischen Erweiterung in einen anderen Ordner kopieren? Ich bin mir ziemlich sicher, dass ich etwas blendend offensichtliche übersehen habe ...
Perfekt genannt. Jetzt ist mein Skript "copy": "cpx \" scripts/**/*. Js \ "wwwroot/scripts", mit der devDependency "cpx": "1.3.1". Es ist genau das, was ich gesucht habe. –