Gradle minifyJS跳过文件,如果失败

时间:2018-06-18 17:57:34

标签: javascript gradle

我正试图在这个帖子Gradle minify all javascript之后的gradle构建中缩小我的js。它按预期工作,但是当它击中某个javascript文件时失败。这是我目前正在使用的代码块

def dynamicTaskNames = []
def dynamicTaskIndex = 1
import com.eriwen.gradle.js.tasks.MinifyJsTask

FileTree tree = fileTree("${buildDir}/deploy/scripts/") { 
    include "**/*.js"
    exclude "*.min.js"
}

tree.each{file -> def dynamicTaskName = "taskMinify${dynamicTaskIndex}"
    task "${dynamicTaskName}"(type: MinifyJsTask){
        def name = file.name.replace(".js", "")
        source = file.absolutePath
        dest = file.getParentFile().absolutePath + "/" + name + ".min.js"
        closure {
            warningLevel = "QUIET"
            compilerOptions.languageIn = "ECMASCRIPT5"
        }
        doLast{
            delete file
        }
    }
    dynamicTaskNames << dynamicTaskName
    dynamicTaskIndex++
}

task callMinify(dependsOn: dynamicTaskNames){
    doLast{
        println("done.")
    }
}

我希望它做的是将文件重命名为.min.js一次处理(现在它们刚刚创建,然后原始的js被删除),第二件事是如果它没有缩小,只需跳过它。这是一个错误的示例,它停止了我想要避免的构建

* What went wrong:
Execution failed for task ':taskMinify343'.
> C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:927 - Ambiguous use of a named function: dj_undef.
  C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:2161 - Ambiguous use of a named function: dj_undef.
  C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:2184 - Ambiguous use of a named function: dj_undef.
  C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:2188 - Ambiguous use of a named function: dj_undef.
  C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:2344 - Ambiguous use of a named function: dj_undef.
  C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:2344 - Ambiguous use of a named function: dj_undef.
  C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:2520 - Ambiguous use of a named function: dj_undef.
  C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:2725 - Ambiguous use of a named function: dj_eval.
  C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:2735 - Ambiguous use of a named function: dj_eval.
  C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:5961 - Ambiguous use of a named function: dj_undef.
  C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:6075 - Ambiguous use of a named function: dj_undef.
  C:/Users/edunn/Desktop/iC/build/deploy/scripts/diff/dojo/dojo.js:6082 - Ambiguous use of a named function: dj_undef.

感谢您提出任何建议

1 个答案:

答案 0 :(得分:0)

我最终从扫描中排除了故障文件和目录,因此无需跳过任何警告。由于失败发生在第3部分JS文件上,因此我对它感到满意,而不是重写JS。这是我的解决方案(相关部分)

FileTree tree = fileTree("${buildDir}/deploy/scripts/") { 
    include "**/*.js"
    exclude "*.min.js"
    exclude "**/handsontable/*"
    exclude "**/dojo/*"
}