I'm using babel with gulp and create a simple DOM library in ES6. But after running and when i'm going to use it, I got the Object.assign is not a function
in chrome console.
this is the gulp code
gulp.task('scripts', function() {
return gulp.src(src + 'js/*.js')
.pipe(babel())
.pipe(concat('main.js'))
.pipe(gulp.dest(dest + 'js'));
});
this is the class file
class DOM {
constructor( selector ) {
var elements = document.querySelectorAll(selector);
this.length = elements.length;
Object.assign(this, elements);
}
...
}
const dom = selector => new DOM(selector);
and I'm using it in client side like dom('#elId');
babel-core
:$ npm install babel-core --save-dev
polyfill
module into your js:import 'babel-core/polyfill';
As I suspect you already know, Google Chrome uses V8, which supports ECMAScript 5th edition.
Object.assign
is introduced in ECMAScript 6th edition.In order to use these additions, you need to include the ES6 polyfill provided by Babel: