如何用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')); });