grunt contrib将复制目录复制到另一个没有根目录的目录中

grunt-contrib-copy copy directory into another without root dir

本文关键字:复制 根目录 contrib grunt 另一个      更新时间:2023-09-26

我正在尝试复制这样的结构:

src
|-a
|-b
|-c
||-ca
||-cb
dest
|-a
|-b
|-c
||-ca
||-cb

然而,如果没有src目录本身出现在dest目录中,我似乎无法实现这一点。即

src
|-a
|-b
|-c
||-ca
||-cb
dest
|src
||-a
||-b
||-c
|||-ca
|||-cb

我的副本配置是这样设置的:

files: [
    {src: [targetDirectory+"index.html"], dest: buildDirectory, expand: true},
    {src: [targetDirectory+"*.png"], dest: buildDirectory, expand: true},
    {src: [targetDirectory+minJSDestination], dest: buildDirectory, expand: true},
    {src: [targetDirectory+minCSSDestination], dest: buildDirectory, expand: true},
    {src: [targetDirectory+"assets/fonts/**.*"], dest: buildDirectory, expand: true},
    {src: [targetDirectory+"assets/images/**.*"], dest: buildDirectory, expand: true},
    {src: [targetDirectory+"assets/partials/**.*"], dest: buildDirectory, expand: true},
    {src: [targetDirectory+"src/*.js"], dest: buildDirectory, expand: true}
]

我尝试了flatten选项,它从dest中删除了"src"目录,但它也删除了其他目录,并将每个文件放在dest的根级别。

我已经尝试将"cwd"设置为目标目录和源目录,但这似乎只是阻止了复制。

我相信肯定有一个选项可以允许这样做,但我还没有找到。有人有什么想法吗?

我解决了这个问题。我需要从src中删除基本目录,并添加cwd:

即:

{src: ["src/*.js"], dest: buildDirectory, expand: true, cwd: srcDirectory}

而不是

{src: [srcDirectory+"src/*.js"], dest: buildDirectory, expand: true, cwd: srcDirectory}