Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
Javascript Babel文件被复制而不被转换_Javascript_Babeljs - Fatal编程技术网

Javascript Babel文件被复制而不被转换

Javascript Babel文件被复制而不被转换,javascript,babeljs,Javascript,Babeljs,我有以下代码: "use strict"; import browserSync from "browser-sync"; import httpProxy from "http-proxy"; let proxy = httpProxy.createProxyServer({}); 我已经通过npm在全球范围内安装了babel core和babel cli。问题是,当我试图在终端上使用此命令进行编译时: babel proxy.js --out-file proxified.js 输出

我有以下代码:

"use strict";

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

let proxy = httpProxy.createProxyServer({});
我已经通过npm在全球范围内安装了
babel core
babel cli
。问题是,当我试图在终端上使用此命令进行编译时:

babel proxy.js --out-file proxified.js
输出文件被复制而不是编译(我的意思是,它与源文件相同)


我在这里遗漏了什么?

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

npm install babel-preset-env

babel --presets env proxy.js --out-file proxified.js
或者创建一个
.babelrc
文件,其中包含

{
    "presets": [
        "env"
    ]
}
像以前一样运行它

env
在本例中是一个预设,基本上说是将所有标准ES*行为编译为ES5。如果使用支持ES6的节点版本,则可能需要考虑执行< /P>
{
    "presets": [
        ["env", { "targets": { "node": "true" } }],
    ]
}
告诉预设仅处理节点版本不支持的内容。如果需要浏览器支持,还可以在目标中包括浏览器版本

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

npm install --save-dev babel-preset-react
…然后使用预设创建一个
.babelrc

{
  "presets": [
    "node5",
    "react"
  ]
}
…用babel
3.8.6
和node
v5.10.1
解决了一个非常类似的问题



我有相同的问题,但原因不同:

我试图加载的代码不在包目录下,Babel默认不在包目录外传输


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

首先确保您具有以下
节点模块:

npm i-D网页包babel core babel-preset-es2015 babel-preset-stage-2 babel loader

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

参考资料:


祝你好运

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

传输以前是有效的,然后突然停止工作,文件只是按原样复制

原来我在某个时候打开了
.babelrc
,Windows决定将
.txt
附加到文件名中。现在,巴贝尔无法识别
.babelrc.txt
。删除
.txt
后缀修复了这个问题。

修复你的.lrc

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

2018年:

如果尚未安装以下软件包,请安装:

npm install babel-loader babel-preset-react
webpack.config.js

{
    test: /\.jsx?$/,
    exclude: /node_modules/,
    use: [
      {
        loader: 'babel-loader',
        options: {
          presets: ['es2015','react']  // <--- !`react` must be part of presets!
        }
      }
    ],
  }
{
测试:/\.jsx?$/,,
排除:/node_模块/,
使用:[
{
加载器:“巴别塔加载器”,
选项:{

预设:['es2015','react']/最终解决方案

我在这上面浪费了3天

import react from 'react' unexpected identifier
我试图修改
webpack.config.js
package.json
文件,添加
.babelrc
,通过
npm
安装和更新软件包,我访问了很多很多页面,但都没有任何效果


什么有效?两个词:npm开始。没错

运行

npm start 
命令启动本地服务器

(请注意,它可能不会立即起作用,但可能只有在您对npm做了一些工作之后才能起作用,因为在尝试此操作之前,我已删除了这些文件中的所有更改,并且它起作用,因此在您真正完成后,将其视为您的最后手段



我在上找到了这些信息。它是波兰语的,但可以在上面随意使用谷歌翻译。

这些答案大部分都是过时的。
@babel/preset env
“@babel/preset react
是您需要的(从2019年7月起)。

2020年1月起:
步骤1:安装巴别塔预设装置
纱线添加-D@babel/preset env@babel/preset react

步骤2:创建一个文件:
babelrc.js
并添加
预设值
module.exports={
// ...
预设:[“@babel/preset env”,“@babel/preset react”],
// ...
}
步骤3:-安装巴别塔加载器
纱线添加-D巴别塔加载器

步骤4:-在
webpack.config.js
中添加加载程序配置:
{
//...
模块:[
规则:[
测试:/\(js | mjs | jsx | ts | tsx)$/,
加载器:require.resolve('babel-loader')
]
]
//...
}

祝你好运……

变为
var
import
语句仍然存在吗?对于较新版本的react,请使用新的babel模块:。它有更好的错误消息并支持react的新功能。这很有用。他们为什么不将其放在文档中?安装babel preset globall安全吗y?@kidcapital文档中确实包含了这一点,但似乎只是作为旁注。我花了很多时间试图弄清楚如何在babel 6.0首次发布时正确配置它。这篇文章的要点已经作为信息框添加到了安装页面中。这是一个非常小的改进,但你必须从某个地方开始!谢谢Logan。c创新多于配置…所以开箱即用的Babel什么都不做-只是复制文件?请提出一个新问题,其中包含有关您的设置的所有信息,以便有人可以回答。您能详细说明一下吗?我的前端代码也不在“包目录”下,工作正常。我的服务器代码包含“导入”“但是babel cli没有解决这些问题……嗯,不确定要详细说明什么?babel没有传输。试着查看所有babel配置的源代码……我试图解决的问题是,我的服务器文件被组织在几个文件夹中:我有servers.js,然后是/api/…东西……当我从内存运行时,每个“导入”或“需要”当我从命令行运行babel时,我只输出一个文件,但不解析相对导入,所以我不能用它来运行我的服务器。。。
npm start