【问题标题】:R.js build doesn't follow require.config fileR.js 构建不遵循 require.config 文件
【发布时间】:2013-08-11 16:41:57
【问题描述】:

我正在尝试构建使用 Require.js、AMD 样式模块的单页应用程序。

我已经在我的init.js 文件中配置了所有依赖项、路径和垫片,这些文件首先运行然后调用我的main.js 文件。

这是我的init.js 文件:

(function() {
    'use strict';
    var me = this;
    me.require.config({

        deps: ['backbone.marionette', 'main'],

        shim: {
            jquery: {
                exports: 'jQuery'
            },
            underscore: {
                exports: '_'
            },
            backbone: {
                deps: [
                    'underscore',
                    'jquery'
                ],
                exports: 'Backbone'
            },
            'backbone.marionette': {
                deps: ['jquery', 'underscore', 'backbone'],
                exports: 'Marionette'
            }
        },

        paths: {
            jquery: '../lib/jquery/dist/jquery.min',
            html5shiv: '../lib/html5shiv/html5shiv.js',
            underscore: '../lib/underscore/underscore-min',
            backbone: '../lib/backbone/backbone',
            'backbone.marionette': '../lib/backbone.marionette/lib/core/amd/backbone.marionette.min',
            'backbone.wreqr': '../lib/backbone.wreqr/lib/amd/backbone.wreqr.min',
            'backbone.babysitter': '../lib/backbone.babysitter/lib/amd/backbone.babysitter.min',
            text: '../lib/requirejs-text/text'
        }

    });
}).call(this);

这是我的r.js 构建配置文件:

({
    baseUrl: '../../development/js',
    optimize: 'closure',
    paths: {
        requireLib: '../lib/requirejs/require'
    },
    mainConfigFile: '../../development/js/init.js',
    out: '../../distribution/main-build.js',
    include: ['requireLib']
})

当我构建时,我只在我的 main-build.js 文件中内联了 Require.js。

由于某种原因,R.js 不遵循 require.config 中定义的 deps 属性。

  • 关于如何获取包含我的 Backbone.js / Marionette.js 文件和在 init.js 文件中找到的 require.config 中描述的依赖项的单个文件的任何想法?

提前致谢!

【问题讨论】:

    标签: backbone.js build requirejs marionette r.js


    【解决方案1】:

    我想知道这是否是您定义配置的方式。 init.js 有什么理由而不是将require.config 放在主要位置?似乎没有必要仅仅为了封装而创建一个匿名函数。

    来自示例r.js build file

    第一个 requirejs({})、require({})、requirejs.config({}) 或 将使用在该文件中找到的 require.config({}) 调用。

    对我来说一直有效的是遵循更标准的调用方法require.config()inside main.js

    【讨论】:

    • 我还应该将 main.js 文件设置为 mainConfigFile 吗?还是我应该完全放弃配置的这个属性?
    • 是的,将mainConfigFile 设置为您的main.js 的路径。优化器将解析您对require.config() 的调用并使用它。示例 - github.com/simonsmith/modular-html-requirejs/blob/master/…
    • 我做了一些测试,你是对的! init.js 文件从未调用过 main.js 文件。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    相关资源
    最近更新 更多