导入react-native-fetch-blob时出现意外令牌

时间:2017-02-05 00:40:59

标签: javascript node.js react-native ecmascript-6 babeljs

我们正尝试使用以下代码导入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",]

有解决方案吗?任何帮助将不胜感激!

谢谢!

1 个答案:

答案 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解决方案的变体,仅在全局模拟文件中。这样,我就不需要导入或隐式模拟测试代码中的任何内容。