【问题标题】:How to optimize ember-data with r.js如何使用 r.js 优化 ember-data
【发布时间】:2014-08-14 07:28:51
【问题描述】:

我最近切换到 ember-data#canary,然后 r.js 开始失败。

 [Error: Error: ENOENT, no such file or directory 
     '/scripts/lib/ember-data/ember-data/core.js'
In module tree:
    app/main
      app/app
        ember-data

    at Object.fs.openSync (fs.js:427:18)
]

这是构建配置文件

`File: build.js`
    var config = {
        mainConfigFile: '/scripts/common.js',
    }

这是requirejs的配置文件

requirejs.config({
    paths: {
        ember: 'ember/ember',
        jquery: 'jquery/dist/jquery',
        requirejs: 'requirejs/require',
        handlebars: 'handlebars/handlebars',
        'ember-data': 'ember-data/ember-data',
    },
    shim: {
        ember: {
            deps: [
                'handlebars',
                'jquery'
            ],
            exports: 'Ember'
        },
        'ember-data': {
            deps: [
                'ember'
            ],
            exports: 'DS'
        },
    }
});

这就是我使用ember-data的方式:

define(['ember', 'ember-data'], function(Ember, DS) {
});

您可以看到 ember-data 金丝雀构建 here

【问题讨论】:

    标签: javascript node.js ember.js requirejs ember-data


    【解决方案1】:

    这个错误从 ember-data 1.0.0-beta.9 开始出现,因为在这个版本中已经更新了源代码中的函数require。您可以恢复到 beta.8 或尝试使用插件 derequire (grunt-derequire, gulp-derequire) 解决此问题。

    我已经用这个任务解决了它:

    gulp.task('build-derequire', function() {
    return gulp.src([paths.src.common + '/bower_components/**/ember-data*.js'])
        .pipe($.derequire([
                {
                    from: 'require',
                    to: '_dereq_'
                },
                {
                    from: 'define',
                    to: '_defi_'
                }
        ]))
        .pipe(gulp.dest(paths.dev_dist + '/scripts/lib'));
    });
    

    【讨论】:

    • 您确认这是一个错误,而不是我的问题吗?如果这是他们故意引入它的原因,我的意思是他们为什么要覆盖 requirejs 变量?缩小版可以正常使用。
    • 是的,这是 Ember-data 中的一个错误。据我所知,它将在 ember-data 的下一个 beta 版本中修复。
    猜你喜欢
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多