ES6代码:letfoo='outer';functionbar(func=x=>foo){letfoo='inner';console.log(func());}bar();//outer结果是“外部”。Babel.js编译后的ES5代码:'usestrict';varfoo='outer';functionbar(){varfunc=arguments.length结果是“外部”。我不知道为什么他们有不同的结果。 最佳答案 这是一个buginBabel.复杂参数列表中的表达式应该看不到函数体中的声明,但是这里Babel生成的代码
我有一个项目,它的代码同时针对浏览器和节点。它有用于浏览器代码的.babelrc文件。但是当我使用Jest运行节点代码测试时,它总是读取不需要的.babelrc文件。所以我可以以某种方式禁用它? 最佳答案 您需要为您的节点测试创建一个额外的Jest设置文件。在此文件中,将transform设置为一个空对象。要使用此文件,您需要使用指向您的节点jest设置的--config选项调用jest。 关于javascript-如何在Jest中禁用Babel集成?,我们在StackOverflow上
当process.env.NODE_ENV=='development'-没问题!但是我们的生产构建在IE11(11.0.9600)中失败了。在chrome55中一切正常。开发依赖:...babel-core:"6.22.0",babel-eslint:"^7.0.0",babel-loader:"^6.2.5",babel-preset-env:"^1.5.2",babel-preset-es2015:"^6.16.0",babel-preset-es2016:"^6.22.0",babel-preset-es2017:"^6.16.0",babel-preset-react:"^6
假设我创建了一个node.js库lib.jsexportclassC{constructor(value,callback){callback(false,`Hello${value}`);}task(value,callback){callback(false,"returned"+value);}}重要的部分是类的构造函数需要接受回调,因为它处理数据库连接和文件I/O。如果我现在导入并使用库回调样式,一切都很好(请参阅下面的c1)。我真的很想promise我使用它的库,使对象构造更方便(实际上它是一大堆类和方法)。但是,我找不到在promise-safe中正确地new类的方法。im
我在ES6class中有一个函数:classTest{//OmittedcodeforbrevityloadEvents(){$.get('/api/v1/events',(data)=>{this.actions.setEvents(data);});}}Babel将this转换为不同的形式,并生成一个_this变量来控制箭头函数的词法范围。var_this=this;$.get('/api/v1/events',function(data){_this.actions.setEvents(data);});当我在Chrome中使用源映射调试ES6类并在我调用this.actions
为什么它不接受传播属性?为此,我正在使用babel-preset-env。.babelrc{"presets":["react",["env",{"targets":{},"debug":true,"modules":"commonjs"}]]}package.json{"name":"myapp","version":"0.1.0","main":"index.js","private":true,"dependencies":{"babel-core":"6.25.0","babel-loader":"7.1.1","babel-preset-env":"^1.6.0","babe
我正在尝试使用Babel在Node上编写一些CLI程序。我看过问题HowdoIusebabelinanodeCLIprogram?还有loganfsmyth说:Ideallyyou'dprecompilebeforedistributingyourpackage.好的,现在我正在使用:"scripts":{"transpile":"babelcli.js--out-filecli.es5.js","prepublish":"npmruntranspile",}但是,当Babel在#!/usr/bin/envnodeheader后面添加'usestrict';行时,我遇到了这个问题。例如
我正在使用Babel(7.5.0)和最新的NodeJS(12.x),因此扩展运算符已经由NodeJS处理,我不想让babel弄乱它。这是我的.babelrc:{"plugins":["@babel/plugin-proposal-class-properties","@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"modules":"commonjs","targets":{"node":"current"},"useBuiltIns":"usage"}]]}这是我的错误:ERRORin./src/
我正尝试按照此guy通过Babel安装ES6但我的终端机出错了。这是我在执行npminstall--globalbabel后看到的/usr/local/bin/babel->/usr/local/lib/node_modules/babel/cli.js/usr/local/bin/babel-node->/usr/local/lib/node_modules/babel/cli.js/usr/local/bin/babel-external-helpers->/usr/local/lib/node_modules/babel/cli.jsbabel@6.5.2/usr/local/l
我正在开发一个JS库,我想将所有用ES6编写的javascript代码转换为ES5标准,以便在当前浏览器中获得更多支持。问题是我想在Gulp任务中使用Babel,所以我安装了所有这些NPM包[package.json]:"devDependencies":{"@babel/core":"^7.1.2","@babel/preset-env":"^7.1.0","babel-cli":"^6.26.0","gulp":"^3.9.1","gulp-babel":"^8.0.0","gulp-concat":"^2.6.1","gulp-sourcemaps":"^2.6.4","gulp