簡體   English   中英

為 Node 6 轉譯所需的最少 babel 插件集是什么

[英]What is the most minimal set of babel plugins needed to transpile for Node 6

在我的 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"
},

代碼有效並被轉譯,但我注意到,查看轉譯后的文件,它正在將let轉換為var ,鑒於 Node 6.9.4 完全支持原生使用let ,這似乎毫無意義。

允許我的代碼在 Node 6.9.4 或更高版本下運行並最大限度地利用其本地語言功能的最小 babel 插件集是什么?

最簡單的選擇是使用https://github.com/babel/babel-preset-env 所以你可以安裝它,然后在你的 Babel 配置中做

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

它會自動為您當前的 Node 版本配置插件。

鑒於您提到的一組語言功能,我認為您不需要stage-0

您可能會考慮只使用babel-preset-es2015 ,它支持arrow-functionsdestructuringimport語句和Arrayspread運算符(對象 rest/spread仍然需要一個 單獨的插件,因為在撰寫本文時它只是第 3 階段) .

TL; 博士; - 對於您所描述的,我認為您可以使用:

"babel": {
  "presets": ["es2015"]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM