5

我正在尝试es6使用 babel CLI 编译一个简单的文件

鉴于以下细节:出了什么问题?

$ node --version
v5.0.0

$ npm --version
3.3.6

$ npm init
$ npm install --save-dev babel-cli

$ echo -e 'import url from "url"\nconsole.log(`2+2=${2+2}`)' > script.js

$ ./node_modules/.bin/babel  script.js 
import url from "url";
console.log(`2+2=${ 2 + 2 }`);

换句话说:我放入 ES6,然后取出 ES6(尽管间距略有不同,并添加了分号)。我期待看到导入转换为要求,并看到我的反引号消失。

那就是:我想要 ES5 out

我需要做些什么不同的事情?

4

2 回答 2

10

Babel 版本 6 “没有任何默认转换”。您可以在此博客文章中阅读有关更改的更多信息

要将 es6 转换为 es5,您需要执行以下操作:

  1. npm i --save-dev babel-preset-es2015

  2. .babelrc使用以下内容在项目的根目录中创建一个文件:

    {

       "presets": ["es2015"]
    

    }

您可以在此基础上进行很多配置,但这至少应该可以帮助您入门。

于 2015-11-11T23:45:13.030 回答
1

诀窍:需要--presets "es2015"作为参数传递给 babel。

如:

$ ./node_modules/.bin/babel  --presets "es2015" script.js 
"use strict";

var _url = require("url");

var _url2 = _interopRequireDefault(_url);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

console.log("2+2=" + (2 + 2));
于 2015-11-11T23:45:15.693 回答