Я пытаюсь использовать npm в качестве инструмента сборки.Как использовать скрипты package.json для копирования файлов с определенным расширением файла
Один из камнем преткновения, с которым я столкнулся, заключается в том, что мне нужно скопировать файлы javascript из одной папки в другую. Исходная папка содержит файлы машинописных файлов, файлы 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
Я никоим образом не женат на НКП. Если что-то еще работает лучше, я буду использовать это.
Итак: Как я, внутри секции сценариев package.json копируют только файлы с определенным расширением в другую папку? Я почти уверен, что я пропустил что-то ослепительно очевидное ...
Совершенная. Теперь мой скрипт «copy»: «cpx \» scripts/**/*. Js \ "wwwroot/scripts", с devDependency "cpx": "1.3.1". Это именно то, что я искал. –