我正在尝试使用Object.assign
中的ES6
,但它总是undefined
。这是我正在使用它的文件:
var Dispatcher = require('./dispatcher.js');
export default Object.assign(Dispatcher.prototype, {
handleViewAction(action) {
this.dispatch({
source: 'VIEW_ACTION',
action: action
});
}
});
以下是我用gulp
代码的transpile
任务:
var browserify = require('browserify');
var reactify = require('reactify');
var source = require('vinyl-source-stream')
var to5 = require('6to5ify');
module.exports = function(gulp, config) {
gulp.task('browserify', function() {
browserify(config.app.entry, {debug: true})
.add(require.resolve('6to5/polyfill'))
.transform(to5)
.transform(reactify)
.bundle()
.pipe(source(config.app.bundleName))
.pipe(gulp.dest(config.app.bundle));
});
};
我的Object
有效,但assign
为undefined
。我做错了什么?
答案 0 :(得分:1)
Babeljs(以前为6to5)不会变换或填充Object.assign。
您需要使用其他polyfill库。 2个热门图书馆是core-js或object-assign。
使用 core-js ,您可以这样做:
require('core-js');
Object.assign({}, {a:1});
或
var core = require('core-js/library');
var result = core.Object.assign({}, {a:1});
使用 object-assign :
var _assign = require('object-assign');
var result = _assign({}, {a:1});
但是当然还有很多其他的库也会这样做。