Попробуйте использовать команду xcopy
вместо copy
, поскольку она лучше соответствует вашим требованиям.
Переопределите сценарий build:ui
в scripts
раздел вашего пакета. json файл выглядит следующим образом:
сценарий пакета. json:
"scripts": {
"build:ui": "xcopy /e/h/y/q \"../2/src\" \"./src\\\" > nul 2>&1"
}
Запуск:
Когда вы cd
обращаетесь к каталогу с именем 1
(то есть к каталогу, содержащему пакет . json с вышеупомянутым build:ui
определенный в нем сценарий), а затем запустите:
npm run build:ui
, в результате чего будет получена структура каталогов:
test
├── 1
│ ├── package.json
│ └── src
│ ├── asd
│ │ ├── asd - Copy (2).txt
│ │ ├── asd - Copy.txt
│ │ └── asd.txt
│ └── asd.txt
└── 2
└── src
├── asd
│ ├── asd - Copy (2).txt
│ ├── asd - Copy.txt
│ └── asd.txt
└── asd.txt
Как видите, папка src
внутри папки 2
и все его содержимое было скопировано в папку 1
.
Объяснение:
Ниже приведено подробное описание вышеупомянутой команды xcopy
:
Параметры:
/e
- копировать папки и подпапки, включая пустые папки. /h
- копировать скрытые и системные файлы и папки. /y
- подавлять запрос на подтверждение перезаписи файл. /q
- Не отображать имена файлов при копировании.
Примечания:
Каждое имя пути заключено в JSON двойные кавычки, т. Е. \"...\"
Часть ./src\\
имеет конечную обратную косую черту sh (\
), которая была JSON сбежал (\\
), чтобы сообщить xcopy
, что местом назначения является каталог. Это также гарантирует, что каталог src
создается, если он еще не существует.
Часть > nul 2>&1
подавляет журнал подтверждения, в котором указано, сколько файлов было скопировано.
Информация, связанная с данной:
Стоит отметить, что на Windows npm используется cmd.exe
в качестве оболочки по умолчанию для запуска сценариев npm - независимо от Инструмент CLI, который вы используете, например, PowerShell . В этом можно убедиться, используя команду npm -config , чтобы проверить настройку script-shell . Например, выполните следующую команду:
npm config get script-shell
Редактировать:
Если вы хотите, чтобы ваша результирующая структура каталогов была такой:
test
├── 1
│ ├── asd
│ │ ├── asd - Copy (2).txt
│ │ ├── asd - Copy.txt
│ │ └── asd.txt
│ ├── asd.txt
│ └── package.json
└── 2
└── src
├── asd
│ ├── asd - Copy (2).txt
│ ├── asd - Copy.txt
│ └── asd.txt
└── asd.txt
На этот раз содержимое папки src
внутри папки с именем 2
было скопировано в папку 1
, но не содержит саму папку, содержащую src
.
Затем необходимо определить npm Сценарий выглядит следующим образом:
"scripts": {
"build:ui": "xcopy /e/h/y/q \"../2/src\" \".\" > nul 2>&1"
}
Примечание: путь назначения был изменен с \"./src\\\"
на \".\"
.