什么是@babel/plugin-transform-classes?
What is @babel/plugin-transform-classes?
我 运行 Google 我网站上的 PageSpeed Insights,它报告了一个问题“避免向现代浏览器提供旧版 JavaScript”,如下所示:
我不知道什么是@babel/plugin-transform-classes
,所以我在网上搜索了一下,好像babel是一个JavaScript compiler and @babel/plugin-transform-classes is a plugin。
但是我不知道或者没有安装编译器和插件,为什么会出现这样的问题?
简答
- 一个 babel 插件 修复 一些 Javascript 错误 旧版浏览器
- 您无法自行修复此错误,至少在您使用 Wordpress 或任何框架时不能。
长答案
什么是 babel
Babel is a JavaScript compiler 框架使用它来使旧版浏览器可以理解代码。
什么是@babel/plugin-transform-classes
这是a babel plugin,包含在@babel/preset-env
。
确实如此
- Transpiles classes using
SuperClass.apply(/* ... */)
, but native classes aren't callable and thus throw in this case.
- Some built-in functions (like
Array
) always return a new object. Instead of returning it, Babel should treat it as the new this.
在
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;
})();
我可以自己解决这个问题吗?
不,因为很多库仍在使用 babel,您必须等待他们继续使用。
所以你可以安全地忽略这个问题。
我 运行 Google 我网站上的 PageSpeed Insights,它报告了一个问题“避免向现代浏览器提供旧版 JavaScript”,如下所示:
我不知道什么是@babel/plugin-transform-classes
,所以我在网上搜索了一下,好像babel是一个JavaScript compiler and @babel/plugin-transform-classes is a plugin。
但是我不知道或者没有安装编译器和插件,为什么会出现这样的问题?
简答
- 一个 babel 插件 修复 一些 Javascript 错误 旧版浏览器
- 您无法自行修复此错误,至少在您使用 Wordpress 或任何框架时不能。
长答案
什么是 babel
Babel is a JavaScript compiler 框架使用它来使旧版浏览器可以理解代码。
什么是@babel/plugin-transform-classes
这是a babel plugin,包含在@babel/preset-env
。
确实如此
- Transpiles classes using
SuperClass.apply(/* ... */)
, but native classes aren't callable and thus throw in this case.- Some built-in functions (like
Array
) always return a new object. Instead of returning it, Babel should treat it as the new this.
在
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;
})();
我可以自己解决这个问题吗?
不,因为很多库仍在使用 babel,您必须等待他们继续使用。
所以你可以安全地忽略这个问题。