3

在我的 Node 应用程序中,我使用import、箭头函数、展开运算符、对象解构letconst.

在我的package.json我包括以下

"engines": {
  "node": ">=6.9.4",
  "npm": "^3"
},

"babel": {
  "presets": [
    "node6",
    "stage-0"
  ]
},

"scripts": {
  "clean": "rm -rf bin/",
  "start": "node bin/index.js",
  "babel": "babel src --out-dir bin",
  "build": "npm run clean && npm run babel",
  "dev": "babel-node src/index.js",
  "test": "find ./test -name '*_spec.js' | NODE_ENV=test xargs mocha --compilers js:babel-core/register --require ./test/test_helper.js"
},

代码可以工作并且被转译,但我注意到,查看转译文件,它正在转换letvar,这似乎毫无意义,因为 Node 6.9.4 完全支持原生使用let

什么是最少的 babel 插件集,可以让我的代码在 Node 6.9.4 或更高版本下运行,并最大限度地利用其原生语言功能?

4

2 回答 2

5

最简单的选择是使用https://github.com/babel/babel-preset-env。所以你可以安装它,然后在你的 Babel 配置中做

{
  presets: [['env', {targets: {node: true}}]]
}

它会自动为您当前的 Node 版本配置插件。

于 2017-01-24T02:57:45.180 回答
0

鉴于您提到的一组语言功能,我认为您不需要stage-0.

您可能会考虑只使用babel-preset-es2015, ,它支持arrow-functions, destructuring,import语句和spread运算符 for ArrayObject rest/spread仍然需要一个单独的插件,因为在撰写本文时它只是第 3 阶段)。

TL;博士; - 对于你所描述的,我认为你可能只使用:

"babel": {
  "presets": ["es2015"]
}
于 2017-01-24T04:29:38.507 回答