Javascript 如何使用r.js优化余烬数据

Javascript 如何使用r.js优化余烬数据,javascript,node.js,ember.js,requirejs,ember-data,Javascript,Node.js,Ember.js,Requirejs,Ember Data,我最近切换到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) ] 这是构建配置文

我最近切换到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.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'
        },
    }
});
这是requirejs配置文件

`File: build.js`
    var config = {
        mainConfigFile: '/scripts/common.js',
    }
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'
        },
    }
});
这就是我如何使用余烬数据的方法:

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

您可以看到ember data canary版本。

此错误已在ember data 1.0.0-beta.9中遇到,因为在此版本中已在源代码中更新了函数
require
。您可以恢复到beta.8版本,或者尝试使用插件(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'));
});

你确认这是一个bug,而不是我的问题吗?如果这是为什么他们故意引入它,我的意思是为什么他们要覆盖requirejs变量?缩小后的版本可以正常工作。是的,这是余烬数据中的一个错误。据我所知,它将在下一个测试版的灰烬数据中修复。