首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果支持ES5,则Babel不转换为NodeJS

如果支持ES5,则Babel不转换为NodeJS
EN

Stack Overflow用户
提问于 2017-02-02 05:14:13
回答 2查看 593关注 0票数 0

英语不是我的母语,请原谅输入错误。

NodeJS LTS现在是4.x和6.x,这是ES6语法的一部分,仅在6.x,node.green中得到支持。

我现在有一个后端Node项目需要支持Node 4.x版本,但是我不得不使用一些语法,只在6.x版本中使用。所以我用preset-es2015介绍了Babel。但是有了这个预设,Babel从ES6转换到ES5。

ES6语法的一部分,如constlet的性能高于var (这是一个假设,实际情况肯定不是那么简单)。

我的代码运行在ES6支持上,为Node6.x的99%或Node4.x的57%,实际上不需要将所有代码降级为ES5。

因此,如果支持ES6,那么我想知道如何让Babel不将NodeJS语法转换为NodeJS。

此外,Babel是否支持检测当前操作环境的代码支持并进行智能转换?

谢谢。

更新:babel-preset-env是我想要的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-02 05:25:57

巴贝尔预设-env允许您针对特定的节点(或浏览器)版本。也就是说,该版本支持的特性不会被转移。示例:

代码语言:javascript
运行
复制
{
  "presets": [
    ["env", {
      "targets": {
        "node": 4
      }
    }]
  ]
}

此外,Babel是否支持检测当前操作环境的代码支持并进行智能转换?

通常情况下,在目标环境中执行代码之前,转换是脱机的,所以这是不可能的。

票数 2
EN

Stack Overflow用户

发布于 2017-02-02 05:18:21

如果要将ES6编译为ES5,则需要安装Babel ES2015预设。

代码语言:javascript
运行
复制
npm install babel-preset-es2015

那么你需要启用这个预设。启用此ES6到ES5编译的一种方法是使用babel-加载器查询字符串:

代码语言:javascript
运行
复制
  module: {
    loaders: [
      {
        test: /\.js$/,
        loader: 'babel-loader?presets[]=es2015'
      }
    ]
  }

或查询选项:

代码语言:javascript
运行
复制
  module: {
    loaders: [
      {
        test: /\.js$/,
        loader: 'babel-loader',
        query: {
          presets: ['es2015']
        }
      }
    ]
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41994636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档