我需要确保插件在使用RequireJS加载依赖项之前不会加载

时间:2015-08-11 20:52:28

标签: javascript jquery jquery-plugins requirejs

我正在使用jquery.validationEngine.js插件。 除非首先加载jqueryValidateEngine,否则jqueryValidateEnglish无法运行。

我的jquery.wrapped.validationEnglish2.js编码如下:

        define(['jqueryValidateEngine'],function($){

         //Plugin Code here

        });

我的jquery.wrapped.validationEngine2.js编码如下:

        define(['jquery'],function($){

         //Plugin Code here

        });

我的主页包含:

    <script src="/imagesrv/marketing/requireJS/assets/lib/require.js" data-main="/imagesrv/marketing/requireJS/assets/js/common2">

common2.js包含:

        //Configure RequireJS

        require.config({
          baseUrl: "/imagesrv/marketing/requireJS/assets",
          paths: {
            // The libraries we use
            jquery: [
                '/imagesrv/marketing/js/jquery.min'
            ],
            bootstrap: '/imagesrv/marketing/requireJS/assets/lib/bootstrap.wrapped.min',
            smartdevice: '/imagesrv/marketing/requireJS/assets/page/smart-device',
            eloquatag: '/imagesrv/marketing/requireJS/assets/page/eloqua-tag',
            main: '/imagesrv/marketing/requireJS/assets/page/main',
            startupkit: '/imagesrv/marketing/requireJS/assets/js/startup.wrapped.kit',
            jqueryuicus: '/imagesrv/marketing/requireJS/assets/js/jquery-wrapped.ui-1.10.3.custom.min',
            smoothscrl: '/imagesrv/marketing/requireJS/assets/js/jquery.smoothdivscroll.wrapped-1.3-min',
            genscript: '/imagesrv/marketing/requireJS/assets/js/gen-wrapped.menu.script',
            owlcarousel: '/imagesrv/marketing/requireJS/assets/js/owl.wrapped.carousel',
            placeholder: '/imagesrv/marketing/requireJS/assets/js/jquery.wrapped.placeholder',
            explorewhatshot: '/imagesrv/marketing/requireJS/assets/js/explorewhatshot.wrapped',
            kiblog: '/imagesrv/marketing/requireJS/assets/js/ki.wrapped.blog.script',
            jqueryValidateEnglish: '/imagesrv/marketing/requireJS/assets/js/jquery.wrapped.validationEnglish2',
            jqueryValidateEngine: '/imagesrv/marketing/requireJS/assets/js/jquery.wrapped.validationEngine2'

          } 

        });


require(['main', 'bootstrap', 'startupkit', 'eloquatag', 'owlcarousel',    'kiblog', 'jqueryuicus', 'jqueryValidateEnglish'], function($) {// Load up this  pages script, once the 'common' script has loaded
  console.log('jQuery and r.js have been loaded!');
});

但是当我运行页面时,我在控制台中不断收到以下错误: “$(...)。validationEngine不是函数

Console Screen Capture

当我查看网络时,它显示我的包装插件正在加载但由于某种原因,它们似乎必须按顺序加载,这可能是我收到控制台错误的原因。

enter image description here

我不确定问题是什么。

1 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解了这个问题,但据我所知,你错过了对require.config的依赖声明,你不是要求它取决于任何东西,所以,你需要做出改变 这样的事情:

require.config({
    //alias
    paths: {
      jqueryValidateEnglish: '/imagesrv/marketing/requireJS/assets/js/jquery.wrapped.validationEnglish2',
      jqueryValidateEngine: '/imagesrv/marketing/requireJS/assets/js/jquery.wrapped.validationEngine2'
    },

    //dependencies
    shim: {
      'jqueryValidateEngine': ['jqueryValidateEnglish']
    }
});

我希望这就是你要找的东西