Sto provando npm come strumento di creazione.Come utilizzare gli script package.json per copiare file con estensione file specifica
Uno scoglio che ho riscontrato è che ho bisogno di copiare i file javascript da una cartella all'altra. La cartella di origine contiene file dattiloscritti, file javascript e file di mappe, ma nella cartella di destinazione sono interessato solo ai file javascript.
Non voglio creare una dichiarazione di copia per ogni file, ma vorrei copiare tutti i file .js. Inoltre, la mia cartella sorgente contiene sottocartelle che contengono anche file javascript. Questi devono essere copiati e mantenere la struttura della sottocartella.
Quello che ho provato è usare NCP con un filtro, ma non riesco a far funzionare il filtro. Ho testato la regex utilizzata nel filtro e sembra funzionare bene. Il test è stato effettuato a Regex Tester con espressione regolare .*\.js$
e stringhe di prova come main.ts
, main.js
main.js.map
ecc. E solo le stringhe .js erano abbinate.
Il mio pacchetto JSON contiene la seguente (abbreviato):
{
"scripts": {
"copy": "ncp scripts wwwroot/scripts --filter=\".*(\\\\.js$)\""
},
"devDependencies": {
"ncp": "2.0.0.0"
}
}
Dato che il mio regex è in una stringa in una stringa devo doppio sfuggito. Ho provato anche altre varianti, ad esempio:
--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
Non sono sposato con NCP. Se qualcos'altro funziona meglio, lo userò.
Quindi: Come faccio a, nella sezione script di package.json copiare solo file con un'estensione specifica in un'altra cartella? Sono abbastanza sicuro di aver trascurato qualcosa di assolutamente ovvio ...
Perfetto. Ora il mio script è "copy": "cpx \" scripts/**/*. Js \ "wwwroot/scripts", con devDependency "cpx": "1.3.1". È esattamente quello che stavo cercando. –