11

如何将 requirejs 集成到流星应用程序中并使用 AMD 模块,例如用于我的 Backbone 模块?有没有人这样做并且可以告诉我需要哪些步骤才能使其正常工作?

4

2 回答 2

4

一个简单的答案(尽管可能不是您要寻找的答案)是您可以简单地独立使用这两者。换句话说,加载所有流星脚本,然后开始加载所需的脚本。您的 require-ified 脚本将能够很好地使用 Meteor 的东西,而不必通过 Require 的加载器“导入”任何它。

如果你导入它,你应该为它创建一个 Require "shim"。

于 2012-12-19T21:47:10.133 回答
0

这是我在 Meteor 和 IronRouter 中加载Aloha Editor的方法。Aloha 使用requirejs来加载它的所有依赖项。

  1. 在public/alohaeditor中解压 Aloha 发行版。
  2. 将除 aloha-common-extra.css 之外的所有 Aloha css 文件移动到client/lib/alohaeditor(不要忘记插件文件夹中的文件)。
  3. 在所有 Aloha css 文件中,将相对路径转换为绝对路径(将所有 '../' 替换为 '/alohaeditor/')。
  4. 安装wait-on-lib Meteor 包。
  5. 将以下钩子添加到您的路线:

    onBeforeAction: function(pause)
        {           
        // Dynamically load require.js
        var one = IRLibLoader.load('/alohaeditor/lib/require.js', 
            {
            success: function(){ console.log('Successfully loaded require.js'); },
            error: function(){ console.log('Error loading require.js'); }
            });
        if(!one.ready())
            return pause();
    
        // Aloha settings
        Aloha = window.Aloha || {};
        Aloha.settings = Aloha.settings || {};
        Aloha.settings.baseUrl = '/alohaeditor/lib/';
        Aloha.settings.plugins = Aloha.settings.plugins || {};
        Aloha.settings.plugins.load = 'common/ui, common/format, common/link, common/table, common/list, common/block, common/undo, common/contenthandler, common/paste, common/commands, common/abbr';
    
        // Dynamically load aloha.js
        var two = IRLibLoader.load('/alohaeditor/lib/aloha.js',
            {
            success: function(){ console.log('Successfully loaded aloha.js'); },
            error: function(){ console.log('Error loading aloha.js'); }
            });
        if(!two.ready())
            return pause();
        },
    
于 2014-10-11T14:02:35.227 回答