Nella specifica ES6, ci sono due modi in cui un file può essere trattati:
Come un "script" che sarebbe generalmente tutto quello che siamo abituati a in un ambiente standard JS
La sintassi del modulo ES6 non è consentita e, per motivi di compatibilità con le versioni precedenti, il contenuto viene trattato come rigoroso solo se ha una direttiva di prefisso "use strict";
.
Come un "modulo" sintassi modulo
ES6 è permesso, e tutto il codice è automaticamente la modalità rigorosa in tutti i casi.
perché la sintassi del modulo ES6 è legato con se qualcosa è un modulo o di uno script, e se qualcosa è un "modulo" viene automaticamente rigorosa, Babel utilizza le presenze di transform-es2015-modules-commonjs
attivare entrambe le trasformazioni allo stesso tempo.
Anche se si abilitasse solo la trasformazione del modulo stessa ed escludesse la modalità rigorosa, tutto il codice che si scrive sarebbe tecnicamente non valido e non appena si tentasse di utilizzare il codice ES6 in un vero ambiente di modulo ES6, sarebbe rigoroso che ti piaccia o no.
Se non si desidera che il codice sia rigoroso, suggerirei di disabilitare la trasformazione transform-es2015-modules-commonjs
e l'utilizzo di moduli CommonJS, poiché non hanno tale requisito in modalità rigorosa.