【问题标题】:Simple Grunt copy command not working简单的 Grunt 复制命令不起作用
【发布时间】:2013-08-15 04:13:01
【问题描述】:

我知道我遗漏了一些非常明显的东西,但我就是看不到它。我有这个正在运行的简单的 Grunt 复制文件。

copy: {
        dev: {
            files: [
                {
                    expand: true,
                    src: [
                        "../index.html",
                        "../views/**",
                        "../scripts/**",
                        "../styles/**",
                        "../data/**",
                        "../images/**"
                    ],
                    dest: "../../iPhone/www/"
                }
            ]
        }

}

每次运行时,我的文件都会进入 ../../iPhone 文件夹,而不是 ../../iPhone/www 文件夹。当我特别说要复制到 www 文件夹时,我不明白为什么要复制一个级别。再次,我知道我错过了一些如此微不足道和微小的东西,但我就是看不到它。提前致谢。

编辑:刚刚发现了一些非常有趣的东西。如果我在 www 之后添加任意文件夹(即 ../../iPhone/www/assets),那么它将正确复制到 www 文件夹,因为它是 assets 的上一级,并且未创建 assets 文件夹。

【问题讨论】:

  • 如您所见,grunt-copy 将在复制时复制路径。因此,在这种情况下,使用.../www 作为基础,然后它将遍历路径../etc 并将文件放在那里。

标签: gruntjs


【解决方案1】:

默认情况下,grunt copy 命令会将 src 的路径复制到 dest。

在这种情况下,使用.. 是问题的根源(没有双关语)。

您可以使用cwd property 解决此问题

您的任务配置如下所示:

copy: {
    dev: {
        files: [{
            cwd: '../',
            expand: true,
            src: ["index.html",
                  "views/**", 
                  "scripts/**", 
                  "styles/**", 
                  "data/**", 
                  "images/**"],
            dest: "../../iPhone/www/"
        }]
    }
}

【讨论】:

  • 啊,幽默……方舟。 +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
  • 1970-01-01
  • 2020-10-13
  • 2011-05-31
  • 2011-04-14
相关资源
最近更新 更多