J'utilise babel avec gulp et je crée une bibliothèque DOM simple dans ES6. Mais après avoir couru et quand je vais l'utiliser, j'ai reçu le Object.assign is not a function
Dans la console chrome.
c'est le code gulp
gulp.task('scripts', function() {
return gulp.src(src + 'js/*.js')
.pipe(babel())
.pipe(concat('main.js'))
.pipe(gulp.dest(dest + 'js'));
});
c'est le fichier de classe
class DOM {
constructor( selector ) {
var elements = document.querySelectorAll(selector);
this.length = elements.length;
Object.assign(this, elements);
}
...
}
const dom = selector => new DOM(selector);
et je l'utilise côté client comme dom('#elId');
Comme je suppose que vous le savez déjà, Google Chrome utilise V8 , qui prend en charge ECMAScript 5ème édition. Object.assign
est introduit dans ECMAScript 6ème édition.
Pour utiliser ces ajouts, vous devez inclure le polyfill ES6 fourni par Babel:
Cela émulera un environnement ES6 complet. [...]
Disponible sur le
browser-polyfill.js
fichier dans unbabel-core
version npm. Cela doit être inclus avant tout votre code Babel compilé. Vous pouvez soit l'ajouter à votre code compilé, soit l'inclure dans un<script>
avant cela.
babel-core
:$ npm install babel-core --save-dev
polyfill
dans votre js:import 'babel-core/polyfill';