J'essaie d'utiliser npm comme outil de construction.
L'une des pierres d'achoppement que j'ai rencontrées est que je dois copier des fichiers javascript d'un dossier à un autre. Le dossier source contient des fichiers typescript, des fichiers javascript et des fichiers map, mais dans le dossier cible, je ne suis intéressé que par les fichiers javascript.
Je ne veux pas faire une déclaration de copie pour chaque fichier, mais je voudrais copier tous les fichiers .js. En outre, mon dossier source contient des sous-dossiers qui contiennent également des fichiers javascript. Ceux-ci doivent être copiés également, et maintenir la structure des sous-dossiers.
Ce que j'ai essayé de faire, c'est d'utiliser PCN avec un filtre, mais je n'arrive pas à faire fonctionner le filtre. J'ai testé l'expression rationnelle utilisée dans le filtre et elle semble fonctionner correctement. Le test a été effectué à Testeur de Regex avec une expression régulière .*\.js$
et des chaînes de test comme main.ts
, main.js
main.js.map
etc., et seules les chaînes .js ont été trouvées.
Mon paquet json contient les éléments suivants (en abrégé) :
{
"scripts": {
"copy": "ncp scripts wwwroot/scripts --filter=\".*(\\\\.js$)\""
},
"devDependencies": {
"ncp": "2.0.0.0"
}
}
Comme mon expression rationnelle se trouve dans une chaîne de caractères dans une chaîne de caractères, je l'ai mise en double-escape. J'ai également essayé d'autres variantes, par exemple :
--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
Je ne suis en aucun cas marié à NCP. Si quelque chose d'autre fonctionne mieux, je l'utiliserai.
Donc : Comment puis-je, à l'intérieur de la section scripts de package.json, copier uniquement les fichiers avec une extension spécifique vers un autre dossier ? Je suis presque sûr d'avoir oublié quelque chose d'absolument évident...