RequireJS和3d party依赖项

时间:2016-04-19 10:21:45

标签: jquery requirejs dependencies

我必须使用现有的js-library(A),我无法修改,而js-library又使用3d party js-library(B)。

A和B都依赖于jQuery,但只有B符合AMD标准:

 (function (root, factory) {
        if (typeof define === 'function' && define.amd) {
            return define('B', ['jquery'], function ($) {
                return factory($, root);
            });
        } else {
            return factory(root.jQuery, root);
        }
    })(window, function ($, window) {

    // Extend $ (jQuery) with a function myFunction
} 

脚本加载顺序为:

  1. require.js + requireconfig.js
  2. 的jquery.js
  3. B.js
  4. A.js
  5. 问题是,当A试图使用$ .myFunction时,它是未定义的。

    我的RequireJS配置文件应该是什么样的,以便$ .myFunction不是未定义的?

1 个答案:

答案 0 :(得分:1)

由于模块A不符合AMD标准,并且取决于jquery和模块B,因此模块A需要requireconfig.js B }。

听起来你不需要模块requireconfig.js的垫片(因为它符合AMD标准),但如果你喜欢,你也可以添加它。

配置中的路径相对于require.config({ ... paths: { "jquery": "your/path/to/jquery", "A": "your/path/to/A", "B": "your/path/to/B" } shim: { A: ["jquery", "B"] } }); 文件的位置。

import java.awt.EventQueue;
import javax.swing.JFrame;

public class Window1 extends JFrame {
private JFrame frame;
}