Babel文件被复制而不被转换

我有这个代码:

"use strict"; import browserSync from "browser-sync"; import httpProxy from "http-proxy"; let proxy = httpProxy.createProxyServer({}); 

我通过npm在全球安装了babel-corebabel-cli 。 关键是当我尝试在我的terminal上编译这个:

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

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

我在这里错过了什么?

巴别是一个转型的框架。 在6.x之前,它默认启用了某些转换,但随着使用本地支持许多ES6function的Node版本的增加,事情变得更加重要。 默认情况下,Babel 6.x不会执行任何转换。 你需要告诉它运行什么样的转换:

 npm install babel-preset-env 

并运行

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

或创build一个.babelrc文件包含

 { "presets": [ "env" ] } 

并像以前一样运行。

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

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

告诉预设只处理Node版本不支持的东西。 如果您需要浏览器支持,您还可以在浏览器中包含浏览器版本。

我有一个不同的原因相同的问题:

我试图加载的代码不在软件包目录下,而且Babel不会默认在软件包目录之外进行转译。

我通过移动导入的代码解决了这个问题,但也许我也可以在Babelconfiguration中使用一些包含语句。

 npm install --save-dev babel-preset-node5 npm install --save-dev babel-preset-react 

…然后用预设创build一个.babelrc

 { "presets": [ "node5", "react" ] } 

…为我解决了一个非常类似的问题,babel 3.8.6 ,节点v5.10.1

https://www.npmjs.com/package/babel-preset-node5
https://www.npmjs.com/package/babel-preset-react

首先确保您有以下node modules

npm i -D webpack babel-core babel-preset-es2015 babel-preset-stage-2 babel-loader

接下来,将其添加到您的Webpack configuration文件( webpack.config.js )中:

 // webpack.config.js ... module : { loaders : [ { test : /\.js$/, loader : 'babel', exclude : /node_modules/, options : { presets : [ 'es2015', 'stage-2' ] // stage-2 if required } } ] } ... 

参考文献:

祝你好运!

同样的错误,不同的原因:

之前的运输工作已经奏效,然后突然停止了工作,文件只是被复制而已。

事实certificate,我打开.babelrc在某些时候,Windows决定追加.txt文件名。 现在.babelrc.txt没有被babel识别。 删除.txt后缀固定的。