【问题标题】:grails asset-pipeline and external JS librarygrails 资产管道和外部 JS 库
【发布时间】:2017-01-08 21:37:57
【问题描述】:

我正在尝试从 grails 2 迁移到 grails 3,因此我必须使用资产管道插件来管理我的 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/)。如果是,如何强制资产插件从那里获取?

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

【问题讨论】:

    标签: javascript jquery grails asset-pipeline


    【解决方案1】:

    我设法让它工作。我将 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
    

    【讨论】:

      猜你喜欢
      • 2016-02-09
      • 1970-01-01
      • 2014-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多