Я пытаюсь сделать npm инструментом сборки.
Один камнем преткновения, с которым я столкнулся, является то, что мне нужно скопировать файлы javascript из одной папки в другую. Исходная папка содержит файлы typescript, файлы javascript и файлы карт, но в целевой папке меня интересуют только файлы javascript.
Я не хочу делать копию для каждого файла, но хочу скопировать все .js файлы. Кроме того, моя исходная папка содержит вложенные папки, которые также содержат файлы javascript. Их также необходимо скопировать и сохранить структуру подпапки.
Я попытался использовать NCP с фильтром, но я не могу заставить фильтр работать. Я тестировал регулярное выражение, используемое в фильтре, и он работает нормально. Тест проводился в Regex Tester с регулярным выражением .*\.js$
и тестовыми строками типа main.ts
, main.js
main.js.map
и т.д., И только строки .js были сопоставлены.
В моем пакете json содержится следующее (сокращенно):
{
"scripts": {
"copy": "ncp scripts wwwroot/scripts --filter=\".*(\\\\.js$)\""
},
"devDependencies": {
"ncp": "2.0.0.0"
}
}
Так как мое регулярное выражение находится в строке в строке, я дважды сбежал от нее. Я также пробовал другие варианты, например:
--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
Я никоим образом не женат на NCP. Если что-то еще работает лучше, я буду использовать это.
Итак: Как мне, внутри раздела сценариев package.json копировать только файлы с определенным расширением в другую папку? Я почти уверен, что упустил что-то ослепительно очевидное...