Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.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 为现代浏览器将ES7转换为ES6_Javascript_Reactjs_Nginx_Babeljs_Transpiler - Fatal编程技术网

Javascript 为现代浏览器将ES7转换为ES6

Javascript 为现代浏览器将ES7转换为ES6,javascript,reactjs,nginx,babeljs,transpiler,Javascript,Reactjs,Nginx,Babeljs,Transpiler,我有一个用es6/7编写的react应用程序,我很高兴使用babel将其传输到es5,以便与所有浏览器兼容 这让我想知道 有没有可能创建一个传输到es6的js包,如果它是一个现代浏览器的话,比如说nginx可以为它提供服务?这将节省文件大小和可能的执行时间 是的,您可以使用Babels预设创建多个版本的捆绑包,以提供不同级别的浏览器兼容性 例如,这个.babelrc将创建一个与Firefox版本50及以上兼容的捆绑包: { "presets": [ ["env", { "

我有一个用es6/7编写的react应用程序,我很高兴使用babel将其传输到es5,以便与所有浏览器兼容

这让我想知道

有没有可能创建一个传输到es6的js包,如果它是一个现代浏览器的话,比如说nginx可以为它提供服务?这将节省文件大小和可能的执行时间

是的,您可以使用Babels预设创建多个版本的捆绑包,以提供不同级别的浏览器兼容性

例如,这个.babelrc将创建一个与Firefox版本50及以上兼容的捆绑包:

{
  "presets": [
    ["env", {
      "targets": {
        "browsers": ["Firefox > 50"]
      }
    }]
  ]
}
在没有任何参数的情况下,env插件将创建一个适用于多种浏览器的捆绑包,它可能比专门为Firefox等现代浏览器构建的捆绑包大得多:

{
  "presets": ["env"]
}
env预设用于指定Babel应使用作为传输目标的浏览器。Browserslist提供了一种查询语言,允许您按类型、平台、版本、使用情况统计信息等指定浏览器。请查看浏览器的文档,找出要为特定受众使用的查询

您可以在命令行上尝试browserslist查询,如下所示:

npx browserslist "> 10%, last 3 versions"
这将为您提供使用率高于10%的浏览器的最后3个版本的列表


一旦您确定了哪些browserslist查询可以为您创建最大浏览器兼容性的大捆绑包,以及为现代浏览器创建更小的捆绑包,您就可以根据传入请求的用户代理使用来为捆绑包提供服务。

当然,为什么不可能呢?我在谷歌搜索了一个小时,却找不到任何可以做到这一点的东西。我想知道是否还有其他人做了这件事,以及是怎么做的。你说的“任何事”是什么意思?您必须手动执行此操作-将代码传输到不同的目标,并配置nginx以根据浏览器及其版本保存网站的不同版本。我正在搜索如何传输到es6,我应该一直在寻找传输到浏览器目标的方法。这就是我什么都找不到的原因。谢谢,我知道我现在在做什么。