如何使用带有grails和资产管道的webjars

时间:2016-07-07 19:08:23

标签: grails asset-pipeline compass webjars

我试图使用sass-asset-pipeline:2.9.4使用libsass而不是指南针。但是我的很多.scss文件都使用了libsass中没有的mixin,所以我找到了一个webjar,compass-mixin,它有我想要的mixins。

虽然资产管道找不到mixins,但在尝试符文ERROR asset.pipeline.jsass.SassAssetFileImporter - Unable to find the asset for compass imported by home.scss时收到@import "compass";错误消息。

我已尝试在导入中使用各种路径,因为资产管道说它适用于webjars。

如何让@import "compass";工作?

2 个答案:

答案 0 :(得分:0)

编辑:我自己的愚蠢回答,根本没用,对不起。

仍在搜索如何使指南针与grails / sass一起使用

答案 1 :(得分:0)

我最终得到的解决方案示例:

build.gradle中的

assets 'org.webjars.bower:compass-mixins:1.0.2'

bootRun {
    dependsOn 'webjars resources extraction'
    systemProperties = System.properties
}

task('webjars resources extraction', type: Copy) {
    def jar = configurations.runtime.filter { it.name.contains('compass-mixins') }.first()

    copy {
        from zipTree(jar)
        into "./grails-app/assets/stylesheets/vendor"
        include 'META-INF/resources/webjars/compass-mixins/1.0.2/lib/**'
    }

    copy {
        from "./grails-app/assets/stylesheets/vendor/META-INF/resources/webjars/compass-mixins/1.0.2/lib"
        into "./grails-app/assets/stylesheets/vendor"
    }
    delete "grails-app/assets/stylesheets/vendor/META-INF"
}

assetClean {
    delete 'grails-app/assets/stylesheets/vendor'
}

我还必须将.scss文件中的导入更改为:

@import "vendor/compass";
@import "vendor/compass/css3";

@Jeremy POUILLOT:你的解决方案似乎不那么重要了,虽然我注意到这个插件已经不再处于活跃开发阶段,而且它需要jruby。