我们正尝试使用以下代码导入react-native-fetch-blob软件包:
const RNFetchBlob = require('react-native-fetch-blob');
const firebase = require('firebase');
但是,当我们尝试构建时,我们会收到意外令牌导入的语法错误,如下所示。
C:\ Users \ ... \ node_modules \ react-native-fetch-blob \ index.js:5
进口{
^^^^^^
SyntaxError:意外的令牌导入
at Object.exports.runInThisContext(vm.js:76:16)
在Module._compile(module.js:513:28)
在Object.Module._extensions..js(module.js:550:10)
在Module.load(module.js:458:32)
在tryModuleLoad(module.js:417:12)
在Function.Module._load(module.js:409:3)
在Module.require(module.js:468:17)
at require(internal / module.js:20:19)
在对象。 (C:\ Users \ ... \ build \ cloud \ file.js:159:243) 在Module._compile(module.js:541:32)
我们正在使用ES6,我们的.babelrc文件如下所示
"plugins": [
["transform-runtime", {
"polyfill": false,
"regenerator": true
}]
],
"presets": ["react-native","es2015",]
有解决方案吗?任何帮助将不胜感激!
谢谢!
答案 0 :(得分:0)
我能够通过为react-native-fetch-blob(在我的情况下为rn-fetch-blob)创建一个模拟来解决此问题。这里建议的模拟对我有用:https://github.com/wkh237/react-native-fetch-blob/issues/212#issuecomment-340706825
作为@scerelli,我也希望模拟能够在单独的地方进行,以便所有测试都可以使用。在/mocks/react-native-fetch-blob.js中放置以下代码似乎对我有用:
const existMock = jest.fn(); existMock.mockReturnValueOnce({then:jest.fn()});
await
这是@SoundBlaster解决方案的变体,仅在全局模拟文件中。这样,我就不需要导入或隐式模拟测试代码中的任何内容。