我正在使用ncp插件将某个目录中的某些文件夹复制到另一个目录中,源目录中也包含一些文件,因此我只想复制其中的文件夹及其内容,这就是我尝试的做法:>
async function copyAssets(exportFolderName) {
const assets = glob.sync("**/", { cwd: distPath });
return Promise.all(
assets.map((asset) => {
return ncpPromise(path.join(distPath, asset), path.join(exportPath, exportFolderName), {
clobber: false,
});
})
);
}
我在这里要做的是,使用distPath
在glob.sync
中获得文件夹名称,然后将每个文件夹及其内容复制到exportPath + exportFolderName
中。
我的源文件夹如下:
但是我得到了一些奇怪的结果:
您可以看到没有复制文件夹,而是复制了文件夹的内容。
我该如何解决?
预先感谢
答案 0 :(得分:1)
我只是尝试使用'glob'和'ncp'模块,这是我的一点理解-
glob.sync('**/')
递归获取目录名称glob.sync('*/')
以非递归方式获取目录名称由于您要从源目录中排除文件,而是整体复制所有目录,所以我认为您应该使用后者glob.sync
现在,与ncp一起玩-
ncp(source, destination)
将源中的所有文件/目录复制到目标目录所以,我猜,以下方法对您有用-
ncp(path.join(distPath, asset), path.join(exportPath, exportFolderName, asset))
这应该创建源资产目录,然后将文件放入其中。