一尘不染

JavaScript Babel文件被复制而不进行转换

javascript

我有以下代码:

"use strict";

import browserSync from "browser-sync";
import httpProxy from "http-proxy";

let proxy = httpProxy.createProxyServer({});

并且我已经通过npm 安装babel-corebabel-cli在全球范围内使用。关键是当我尝试在终端上使用此代码进行编译时:

babel proxy.js --out-file proxified.js

输出文件被复制而不是编译(我的意思是,它与源文件相同)。

我在这里想念什么?


阅读 535

收藏
2020-04-25

共1个答案

一尘不染

Babel是一个转换框架。在6.x之前的版本中,默认情况下启用了某些转换,但是随着本机支持许多ES6功能的Node版本的使用量增加,可配置性变得更加重要。默认情况下,Babel
6.x不执行任何转换。您需要告诉它要运行哪些转换:

npm install babel-preset-env

并运行

babel --presets env proxy.js --out-file proxified.js

或创建一个.babelrc包含

{
    "presets": [
        "env"
    ]
}

并像以前一样运行它。

env在这种情况下,是一个预设,该预设基本上说是将所有标准ES *行为编译为ES5。如果您使用的是支持某些ES6的Node版本,则可能需要考虑

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

告诉预设只处理您的Node版本不支持的事情。如果需要浏览器支持,也可以在目标中包括浏览器版本。

2020-04-25