Search code examples
grailsgrails-pluginuglifyjs

Grails uglifyjs plugin does not work


I have added uglifyjs plugin to my project with grails install-plugin uglify-js-minified-resources.

Also added compile ":uglify-js-minified-resources:0.1.1" to my BuildConfig.groovy file.

After starting application none of the js files was minified. Am i missing some configuration? I was following this

My BuildConfig file

grails.project.dependency.resolution = {
// inherit Grails' default dependencies
inherits("global") {
    // specify dependency exclusions here; for example, uncomment this to disable ehcache:
    // excludes 'ehcache'
}
log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
checksums true // Whether to verify checksums on resolve
legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility

repositories {
    inherits true // Whether to inherit repository definitions from plugins

    grailsPlugins()
    grailsHome()
    grailsCentral()

    mavenLocal()
    mavenCentral()

    mavenRepo "xxx"

}

dependencies {
    // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.

    // runtime 'mysql:mysql-connector-java:5.1.22'
    runtime 'org.mybatis:mybatis-spring:1.0.2'
    runtime 'org.apache.poi:poi:3.9'
}

plugins {
    runtime ":hibernate:$grailsVersion"
    runtime ":jquery:1.8.3"
    runtime ":resources:1.2"
    compile ":grails-melody:1.45"
    compile ":uglify-js-minified-resources:0.1.1"

    build ":tomcat:$grailsVersion"

    runtime ":database-migration:1.3.2"

    compile ':cache:1.0.1'

    if (Environment.current == Environment.PRODUCTION) {
        runtime ':ext-js-common:latest.release'
    }
}

}

my resourses file :

modules = { 
    css {
        dependsOn 'css-common'
        resource url:'css/test.css'
    }

    utils {
        dependsOn 'ext-js-core'
        resource url:'js/util/test.js'

    }

    plugins {
        dependsOn 'ext-js-core, ext-overrides, utils, plugins-common'
        resource url:'js/plugins/asde.js'
    }

    extensions {
        dependsOn 'ext-js-core, utils, ux-common'
        resource url:'js/ux/treecombo/Ext.TreeCombo.js'

    }

    stores {
        dependsOn 'ext-js-core, utils'
        resource url:'js/store/store.js'

    }

    ui {
        dependsOn 'ext-js-core, utils, ext-overrides, plugins, extensions, stores'
        resource url:'js/ui/tab.ui.js'
    }

}

my app.gsp file contains these modules:

    <r:require module="css"/>   
<r:require module="utils"/>
<r:require module="plugins"/>
<r:require module="extensions"/>
<r:require module="stores"/>
<r:require module="ui"/>

Solution

  • First make sure you have the resource plugin enabled for the environment you are checking. Many times I had it off in Dev on accident. Also you can turn on the logging to see what is happening. Add the following to your log4j config.

    debug "org.grails.plugin.resource"
    

    Also the minified resources will only show on the web page itself. And only if using the tags from the resource plugin.