英语不是我的母语,请原谅输入错误。
NodeJS LTS现在是4.x和6.x,这是ES6语法的一部分,仅在6.x,node.green中得到支持。
我现在有一个后端Node项目需要支持Node 4.x版本,但是我不得不使用一些语法,只在6.x版本中使用。所以我用preset-es2015介绍了Babel。但是有了这个预设,Babel从ES6转换到ES5。
ES6语法的一部分,如const,let的性能高于var (这是一个假设,实际情况肯定不是那么简单)。
我的代码运行在ES6支持上,为Node6.x的99%或Node4.x的57%,实际上不需要将所有代码降级为ES5。
因此,如果支持ES6,那么我想知道如何让Babel不将NodeJS语法转换为NodeJS。
此外,Babel是否支持检测当前操作环境的代码支持并进行智能转换?
谢谢。
更新:babel-preset-env是我想要的。
发布于 2017-02-02 05:25:57
巴贝尔预设-env允许您针对特定的节点(或浏览器)版本。也就是说,该版本支持的特性不会被转移。示例:
{
"presets": [
["env", {
"targets": {
"node": 4
}
}]
]
}此外,Babel是否支持检测当前操作环境的代码支持并进行智能转换?
通常情况下,在目标环境中执行代码之前,转换是脱机的,所以这是不可能的。
发布于 2017-02-02 05:18:21
如果要将ES6编译为ES5,则需要安装Babel ES2015预设。
npm install babel-preset-es2015那么你需要启用这个预设。启用此ES6到ES5编译的一种方法是使用babel-加载器查询字符串:
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader?presets[]=es2015'
}
]
}或查询选项:
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader',
query: {
presets: ['es2015']
}
}
]
}https://stackoverflow.com/questions/41994636
复制相似问题