如何用r.js优化烬数据

我最近改用了r.js -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) ] 

这是构buildconfiguration文件

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

这是requirejsconfiguration文件

 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 canary的构build。

这个bug已经从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')); });