Javascript 如何使用r.js优化余烬数据
我最近切换到ember data#canary,然后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) ] 这是构建配置文
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变量?缩小后的版本可以正常工作。是的,这是余烬数据中的一个错误。据我所知,它将在下一个测试版的灰烬数据中修复。