J'utilise gulp et babel pour transcrire ES6 en ES5. Voici mon code:L'objet ne supporte pas la propriété ou la méthode 'matches' sur Edge
gulpfile.babel.js
import gulp from 'gulp';
import babel from 'gulp-babel';
gulp.src([appDir + 'js/**/*.js', '!' + appDir + 'js/{vendors,vendors/**}'])
.pipe(babel({
presets: ['es2015'],
plugins: ['transform-runtime']
}))
.pipe(gulp.dest(devDir + 'js'));
package.json
"devDependencies": {
"babel-core": "*",
"babel-plugin-transform-runtime": "*",
"babel-preset-es2015": "*",
"gulp": "*",
"gulp-babel": "*",
}
.babelrc
{
"presets": [
"es2015"
],
"plugins": ["transform-runtime"]
}
E Tout fonctionne bien sur tous les navigateurs sauf IE11 et Edge.
IE11 a erreur:
'Symbol' is undefined
bord a erreur:
Object doesn't support property or method 'matches'
J'espère que l'ajout de ce plugin "plugins": ["transform-es2015-typeof-symbol"]
dans le fichier .babelrc résoudra le 'Symbole' est le problème indéfini mais pas!
Ai-je besoin de certains paramètres spéciaux ou de transformer le plugin pour babel?
Vous avez 'babel-plugin-transform-runtime' dans votre liste de dépendances, mais vous ne l'avez pas activé dans la configuration de Babel. Aussi généralement pas une bonne idée de mettre deux questions en une. Votre problème avec 'matches' est entièrement indépendant de Babel ou Gulp ou ES6. – loganfsmyth
J'ai mis à jour le code, mais j'ai une nouvelle erreur maintenant: ReferenceError: require n'est pas défini – quarky
Avec le processus de construction que vous avez montré, il n'y a rien qui gérera 'import' et' export' correctement. Si vous chargez dans un navigateur avec l'importation/exportation de module, vous devez utiliser Webpack. – loganfsmyth