Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用babel CLI编译文件 我正在尝试用babel CLI编译一个简单的es6文件_Node.js_Babeljs_Transpiler - Fatal编程技术网

Node.js 如何使用babel CLI编译文件 我正在尝试用babel CLI编译一个简单的es6文件

Node.js 如何使用babel CLI编译文件 我正在尝试用babel CLI编译一个简单的es6文件,node.js,babeljs,transpiler,Node.js,Babeljs,Transpiler,考虑到以下细节:出了什么问题 $ 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";

考虑到以下细节:出了什么问题

$ 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(尽管间距略有不同,并添加了分号)。我希望看到导入转换为requires,并看到我的back ticks消失

也就是说:我希望ES5退出

我需要做什么不同的事情?Babel版本6提供“没有任何默认转换”。您可以阅读有关中的更改的更多信息

要将es6传输到es5,您需要执行以下操作:

  • 运行
    npm i——保存dev-babel-preset-es2015

  • 在项目根目录中创建一个
    .babelrc
    文件,其中包含以下内容:

    {

    }


  • 除此之外,您还可以进行很多配置,但这至少可以让您开始。

    诀窍:需要将
    --预设“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));
    

    什么版本的巴别塔?他们最近讨论了记录6.1的工作原理(另一种说法是:上面显示的命令是在我提问时运行的。)这个问题每天被问多次。请使用搜索或至少浏览
    babeljs
    标签(我还建议阅读您添加的标签的标签描述),这很好——谢谢!没问题!在版本6发布时遇到了同样的问题。
    $ ./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));