草庐IT

babel-jest

全部标签

javascript - 在 Jest 中模拟静态方法

我在Jest模拟静态方法时遇到了麻烦。假设您有一个带有静态方法的A类:exportdefaultclassA{f(){return'a.f()'}staticstaticF(){return'A.staticF()'}}还有一个导入A的B类importAfrom'./a'exportdefaultclassB{g(){consta=newA()returna.f()}gCallsStaticF(){returnA.staticF()}}现在你想模拟A。模拟f()很容易:importAfrom'../src/a'importBfrom'../src/b'jest.mock('../src

javascript - 如何使用 babel-cli 从转译后的代码中删除注释

我一直在寻找一些.babelrc选项来从转译的代码中删除注释,但我没有找到任何运气。我试过这个:{"comments":false}还有{"options":{"comments":false}}两者都不起作用。我没有想法,而且我无法在任何地方找到任何像样的文档。 最佳答案 始终建议使用.babelrc:{comments:false}如果使用babel-cli,您可以使用--no-comments选项来实现相同的行为。babel-cli的最新版本包括teststhatcheckforthisbehaviourtobeimpleme

javascript - ES2015 Babel 字符串插值不适用于撇号(但适用于双引号)

我正在使用babel/grunt来学习一些ES2015。根据thispost单引号和双引号在Javascript中没有真正的区别。即“测试”和“测试”。虽然在尝试字符串插值时,babeljs似乎存在问题(或者更可能是我)。请问下面的代码有什么问题吗?根据thisdocument,似乎两者都应该有效。Chrome控制台中没有错误。工作Js:varname="Bob",time="today";alert(`Hello${name},howareyou${time}?`);转换为:varname="Bob",time="today";alert("Hello"+name+",howarey

javascript - ng-annotate 错误与 Babel 和解构

使用Babel转译为ES6时出现奇怪的错误,ng-annotate不喜欢解构。我将我的源代码复制到在线babel编译器中,它工作正常。在我的gulp管道链中注释掉ng-annotate可以消除错误。删除文件中的/*@ngAnnotate*/注释并手动注入(inject)也不会改变任何东西。Gulp部分:returngulp.src(config.scripts.app).pipe(changed(config.dist+'/scripts')).pipe(plumber()).pipe(annotate())//Filteroutandtranspileonly.es6.jsfiles

javascript - 我们如何模拟每个测试与 Jest 的依赖关系?

这是fullminimalrepro给定以下应用:src/food.jsconstFood={carbs:"rice",veg:"greenbeans",type:"dinner"};exportdefaultFood;src/food.jsimportFoodfrom"./food";functionformatMeal(){const{carbs,veg,type}=Food;if(type==="dinner"){return`Goodevening.Dinneris${veg}and${carbs}.Yum!`;}elseif(type==="breakfast"){retur

javascript - 为什么 React 应用程序的生产构建(使用 Webpack 和 Babel)使用错误的开发环境和 HMR,这会导致错误?

我正在尝试创建我的React项目的生产版本,但它选择了错误的配置。在开发版本中,我使用的是HMR(热模块更换)。这是在.babelrc中配置的,位于env>development>plugins下。添加额外节点env>production时,它似乎被忽略了。它仍然使用带有HMR的开发配置,这会导致错误:UncaughtError:locals[0]doesnotappeartobeamoduleobjectwithHotModulereplacementAPIenabled.Youshoulddisablereact-transform-hmrinproductionbyusingen

javascript - Browserify 和 Babel gulp 任务

我想在我的JavaScript中同时使用Browserify和Babel。为此,我创建了一个gulp任务gulp.task('babel',function(){returngulp.src('_babel/*.js').pipe(browserify({insertGlobals:true})).pipe(babel({presets:['es2015']})).pipe(gulp.dest('_dev/js'));});不幸的是,当我想在我的代码中使用import时,出现错误:ParseError:'import'and'export'mayonlyappearatthetople

javascript - Jest 测试 "Compared values have no visual difference."

我正在对两个非常复杂的对象进行比较,并尝试在expect中使用.toEqual方法。这是我的测试:it('checkifstepGroupsdataincontrolDatamatchesdatainliveData',()=>{varcontrolStore=data.controlStorevarliveStorereturngetData().then(result=>{liveStore=newStore()liveStore.loadData(JSON.parse(result))expect(controlStore).toEqual(liveStore)})})我对预期输

javascript - 如何使用 Jest 测试输出随机的函数?

如何使用Jest测试输出随机的函数?像这样:importcuidfrom'cuid';constfunctionToTest=(value)=>({[cuid()]:{a:Math.random(),b:newDate().toString(),c:value,}});因此functionToTest('Somepredictablevalue')的输出将类似于:{'cixrchnp60000vhidc9qvd10p':{a:0.08715126430943698,b:'TueJan10201715:20:58GMT+0200(EET)',c:'Somepredictablevalue

javascript - 如何完全禁用 babel transform-regenerator

我正在寻找一种完全禁用babel生成器函数转换的方法。对于babel5有一个blacklist选项,但是对于babel6似乎没有办法做到这一点(至少我没有在官方网站上找到任何文档)。我目前的配置{"presets":["react",],"plugins":["transform-object-rest-spread",]}像这里描述的那样禁用它https://babeljs.io/docs/plugins/transform-regenerator/没有帮助。有什么想法吗? 最佳答案 您尝试过“排除”吗?喜欢:{"presets"