我尝试从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文件吗?
答案 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