我正试图在这个帖子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.
感谢您提出任何建议
答案 0 :(得分:0)
我最终从扫描中排除了故障文件和目录,因此无需跳过任何警告。由于失败发生在第3部分JS文件上,因此我对它感到满意,而不是重写JS。这是我的解决方案(相关部分)
FileTree tree = fileTree("${buildDir}/deploy/scripts/") {
include "**/*.js"
exclude "*.min.js"
exclude "**/handsontable/*"
exclude "**/dojo/*"
}