grails 资产管道和外部 JS 库

grails asset-pipeline and external JS library

我正在尝试从 grails 2 迁移到 grails 3,所以我必须使用 asset-pipeline 插件来管理我的 java 脚本文件。问题是我使用了几个外部库,例如globalize, ajax-solr.They 相当大并且有多个相互依赖的文件。他们也有很多对 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/).如果是,如何强制资产插件从那里获取它?

第二个如何解决依赖问题?我应该使用 //= require 指令修改 globalize 和 ajax-solr 文件吗?

我成功了。我将 globalize 放在 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