在 Grails 2.5.6 项目中,我无法为 Angular 模板处理编写自定义资产管道 AssetFile / Processor 对。更具体地说,当我在开发模式下运行时它可以工作(grails run-app
),但在打包时失败(grails war
)。
新的 AssetFile 是对 angular-template-asset-pipeline 2.2.7 的简单定制(我需要使用仅在新版本插件上添加的新参数,仅适用于 Grails 3)。
供参考,以下是文件:
- AngularTemplateAssetFile:https ://ideone.com/eyuJVi (在 src/groovy 上)
- asset.specs:https ://ideone.com/iGuUJv (在 web-app/META-INF/asset-pipeline/asset.specs 上)
我将以下代码放在 Bootstrap.groovy 上:
if (!AssetHelper.assetSpecs.contains(AngularTemplateAssetFile)) {
AssetHelper.assetSpecs << AngularTemplateAssetFile
}
在 _Events.groovy 上:
eventAssetPrecompileStart = { assetConfig ->
assetConfig.specs << 'vtp.angular.AngularTemplateAssetFile'
}
在grails run-app
处理器上被正确调用,角度模板被处理并注入页面。上grails run-war
,我收到以下错误:
...
.
|Compiling 7 GSP files for package [vtpWeb]
..
|Compiling 2 GSP files for package [springSecurityCore]
.
|Compiling 8 GSP files for package [jodaTime]
.
|Compiling 4 GSP files for package [mail]
.
|Compiling 1 GSP file for package [greenmail]
.
|Compiling 5 GSP files for package [console]
..
|Building WAR file
...................................................................................................
|Precompiling Assets!
.Error
|
WAR packaging error: vtp.angular.AngularTemplateAssetFile
该消息仅包含类名,我无法弄清楚在构建战争时如何调试应用程序。
使用的版本:
- 圣杯 2.5.6
- 资产管道:2.6.7
angular-template-asset-pipeline
用作我 fork 基础的原始版本:2.2.7