javascript - Grails Assets 管道和外部JS库

标签 javascript jquery grails asset-pipeline

我正在尝试从grails 2迁移到grails 3,因此我必须使用asset-pipeline插件来管理我的Java脚本文件。问题是我使用了几个外部库,例如全局化,ajax-solr。它们很大,有多个相互依赖的文件。他们还对jquery有很多依赖关系,并且经常使用命名空间。因此,当我简单地将它们复制到asset/javascript中时,控制台中会出现很多异常,例如

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? (添加到此组织集合中的常见文件夹是“lib”文件夹。此文件夹在组织第三方库(如jQuery或Bootstrap-http://www.asset-pipeline.com/manual/)中很有用)。如果是,如何强制 Assets 插件从那里拿起?

第二种如何解决依赖关系的问题?是否应该使用//= require指令修改globalize和ajax-solr文件?

最佳答案

我设法使它起作用。我将全局化放置在lib文件夹(grails-app/assets/lib/globalize/)中,并使用所有导入创建了一个文件globalize-manifest.js:

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

然后当我需要使用全局化时,我使用
// require globalize-manifest

关于javascript - Grails Assets 管道和外部JS库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41538185/

相关文章:

grails - 没有方法签名:save()适用于参数类型:()值:[]

javascript - 如何在空动态树上删除节点

javascript - 自定义创建的下拉 onclick 函数未触发

javascript - 如何在 angularjs 中将数据从工厂传递到我的 Controller ?

javascript - 将 jQuery 回调函数保存在单独的文件中

javascript - 为什么我的 javascript 表单没有提交?

Grails 2.3 - [错误] 找不到具有名称的模块

javascript - href 中的 Angular 绑定(bind)有效但 src 绑定(bind)无效?

jquery - 焦点在几个<p :inputNumber>之间自动跳转

tomcat - 我的 Grails 部署到 Tomcat 容器有什么问题?