Babel文件被复制而不被转换
我有这个代码:
"use strict"; import browserSync from "browser-sync"; import httpProxy from "http-proxy"; let proxy = httpProxy.createProxyServer({});
我通过npm在全球安装了babel-core
和babel-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
后缀固定的。