Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 网页包如何使用polyfill?_Javascript_Webpack_Ecmascript 6_Babeljs_Es6 Module Loader - Fatal编程技术网

Javascript 网页包如何使用polyfill?

Javascript 网页包如何使用polyfill?,javascript,webpack,ecmascript-6,babeljs,es6-module-loader,Javascript,Webpack,Ecmascript 6,Babeljs,Es6 Module Loader,我正在使用babel polyphill的webpack,这样我就可以用es6编写代码了 我不明白网页是如何使用polyfill的,这样我的代码就可以在IE这样的浏览器中得到支持 例如,假设我们有一个简单的类 class Polygon { constructor(height, width) { this.name = 'Polygon'; this.height = height; this.width = width; } } 由于IE不了解class关

我正在使用babel polyphill的webpack,这样我就可以用es6编写代码了

我不明白网页是如何使用polyfill的,这样我的代码就可以在IE这样的浏览器中得到支持

例如,假设我们有一个简单的类

class Polygon {
  constructor(height, width) {
    this.name = 'Polygon';
    this.height = height;
    this.width = width;
  } 
}
由于IE不了解class关键字是什么,我的代码需要更改为:

function Polygon(height, width) {
    this.name = 'Polygon';
    this.height = height;
    this.width = width;
  } 
是在运行时使用类似于对应该解释的代码的引用的方式发生更改,还是webpack正在编译我的代码,以便生成的代码只是es5

我的意思是,如果这种情况发生在运行时,我的包中会有更多的代码:我编写的代码+polyphill

事实上,当使用webpack时,我的代码要大得多

如果它没有在运行时发生,那么为什么我必须将polyphill包含到依赖项中,而不是包含在开发依赖项中

Thx

webpack是否正在编译我的代码,以便生成的代码仅为es5

对。网页包包括babel polyfill代码到您的结果包中

所以,如果您使用本机Promise,babel polyfill将自己的实现设置为global namespacewindow.Promise。 还有一个babel运行时包,它不涉及全局名称空间,并在Web包绑定期间将您在代码中的承诺解析为本地模块

如果它没有在运行时发生,那么为什么我必须将polyphill包含到依赖项中,而不是包含在开发依赖项中

因为babel polyfill是应用程序在运行时正确运行所必需的模块。运行应用程序需要依赖项,开发依赖项仅用于开发、传输、测试等。因此,示例babel-transpiler Devdependence,babel polyfill为应用程序依赖项提供了缺少的功能API,而不是语法

webpack是否正在编译我的代码,以便生成的代码仅为es5

对。网页包包括babel polyfill代码到您的结果包中

所以,如果您使用本机Promise,babel polyfill将自己的实现设置为global namespacewindow.Promise。 还有一个babel运行时包,它不涉及全局名称空间,并在Web包绑定期间将您在代码中的承诺解析为本地模块

如果它没有在运行时发生,那么为什么我必须将polyphill包含到依赖项中,而不是包含在开发依赖项中

因为babel polyfill是应用程序在运行时正确运行所必需的模块。运行应用程序需要依赖项,开发依赖项仅用于开发、传输、测试等。因此,示例babel-transpiler Devdependence,babel polyfill为应用程序依赖项提供了缺少的功能API,而不是语法