Grazie anche a te Luca, avevo provato anche quello ma non funzionava comunque...
Ho trovato il problema (nel caso capitasse ad altri con Rails/webpacker): in pratica, nella configurazione babel di default che viene con webpacker la directory node_modules viene ignorata da babel. Il problema nel mio caso e' che una libreria che uso, AutoNumeric, ha sintassi ES6 e dunque, essendo node_modules ignorata, anche quella libreria veniva ignorata e percio' codice ES6 andava a finire nel bundle finale, causando problemi con IE11. Non era neanche un problema di preset dunque, infatti alla fine ho lasciato quello di default di webpacker ("env").
Nell'environment.js, dove posso aggiungere custom configs, ho messo le linee in bold:
codice:
const { environment } = require('@rails/webpacker')
const babelLoader = environment.loaders.get("babel")
babelLoader.exclude = /node_modules\/(?!(autonumeric)\/).*/
module.exports = environment
In questo modo faccio override del setting "exclude" con una regex diversa che mi include autonumeric (ed eventuali altri). Ho fatto cosi' perche' non ho trovato come modificarlo direttamente nel .babelrc, che riporto cosi' come e' adesso qui sotto, per riferimento.
Ho dovuto aggiungere
- dei plugin per la conversione ES6>>ES5 di alcune cose
- alcuni polyfill da core-js/element-closest/mutation-observer-inner-html-shim per far funzionare anche Stimulus.js con IE11
Adesso tutto sembra funzionare come atteso. Grazie ancora ad entrambi per i suggerimenti!
codice:
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": [
"> 1%"
],
"uglify": true
},
"useBuiltIns": true,
"debug": false
}],
],
"plugins": [
"syntax-dynamic-import",
"transform-object-rest-spread",
["transform-class-properties", { "spec": true }],
"transform-es2015-classes",
"transform-es2015-arrow-functions",
"transform-object-assign"
]
}