grails asset-pipeline和外部JS库

时间:2017-01-08 21:37:57

标签: javascript jquery grails asset-pipeline

我尝试从grails 2迁移到grails 3,因此我必须使用asset-pipeline插件来管理我的java脚本文件。问题是我使用了几个外部库,例如globalize,ajax-solr。他们很大,有多个文件,彼此依赖。它们对jquery有很多依赖,并且使用命名空间很多。因此,当我将它们复制到Uncaught ReferenceError: AjaxSolr is not defined Uncaught ReferenceError: jQuery is not defined ParameterHashStore.js:13 Uncaught TypeError: Cannot read property 'extend' of undefined 时,我在控制台中会遇到很多异常,例如

asset/javascript

第一个问题是这些图书馆应该放在哪里?在子文件夹中的asset/lib? 或者在文档建议的//= require中? (添加到这组组织的常见文件夹是" lib"文件夹。此文件夹可用于组织第三方库,如jQuery或Bootstrap。 - http://www.asset-pipeline.com/manual/)。如果是,如何强制资产插件从那里获取?

第二个如何解决依赖关系的问题?我应该使用{{1}}指令修改globalize和ajax-solr文件吗?

1 个答案:

答案 0 :(得分:0)

我设法让它发挥作用。我将globalize放在lib文件夹(grails-app/assets/lib/globalize/)中并创建了一个包含所有导入的文件globalize-manifest.js

//= require globalize/lib/globalize
//= require globalize/lib/cultures/globalize.culture.pl-PL.js
...

然后当我需要使用globalize时,我使用

导入它
// require globalize-manifest