Ejecuto Google PageSpeed Insights en mi sitio e informa un problema que es "Evitar servir JavaScript heredado a los navegadores modernos", como se muestra a continuación:
No tengo idea de qué es @babel/plugin-transform-classes , así que busqué en línea y parece que babel es un compilador de JavaScript y @babel/plugin-transform-classes es un complemento .
Pero no sé ni instalo el compilador y el complemento, ¿por qué habrá tal problema?
Babel es un compilador de JavaScript que utiliza el marco para hacer que el código sea comprensible para navegadores más antiguos.
Este es un complemento de babel , que se incluye en @babel/preset-env .
Lo hace
- Transpila las clases usando
SuperClass.apply(/* ... */), pero las clases nativas no se pueden llamar y, por lo tanto, se lanzan en este caso.- Algunas funciones integradas (como
Array) siempre devuelven un nuevo objeto. En lugar de devolverlo, Babel debería tratarlo como el nuevo esto.
class Test { constructor(name) { this.name = name; } logger() { console.log("Hello", this.name); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Test = (function() { function Test(name) { _classCallCheck(this, Test); this.name = name; } Test.prototype.logger = function logger() { console.log("Hello", this.name); }; return Test; })();No, dado que muchas bibliotecas todavía usan babel, tendrá que esperar a que continúen.
Por lo tanto, puede ignorar este problema.