我有以下代码:
"use strict"; import browserSync from "browser-sync"; import httpProxy from "http-proxy"; let proxy = httpProxy.createProxyServer({});
并且我已经通过npm 安装babel-core并babel-cli在全球范围内使用。关键是当我尝试在终端上使用此代码进行编译时:
babel-core
babel-cli
babel proxy.js --out-file proxified.js
输出文件被复制而不是编译(我的意思是,它与源文件相同)。
我在这里想念什么?
Babel是一个转换框架。在6.x之前的版本中,默认情况下启用了某些转换,但是随着本机支持许多ES6功能的Node版本的使用量增加,可配置性变得更加重要。默认情况下,Babel 6.x不执行任何转换。您需要告诉它要运行哪些转换:
npm install babel-preset-env
并运行
babel --presets env proxy.js --out-file proxified.js
或创建一个.babelrc包含
.babelrc
{ "presets": [ "env" ] }
并像以前一样运行它。
env在这种情况下,是一个预设,该预设基本上说是将所有标准ES *行为编译为ES5。如果您使用的是支持某些ES6的Node版本,则可能需要考虑
env
{ "presets": [ ["env", { "targets": { "node": "true" } }], ] }
告诉预设只处理您的Node版本不支持的事情。如果需要浏览器支持,也可以在目标中包括浏览器版本。