【问题标题】:react-native-mock testing ReferenceError: Map is not definedreact-native-mock testing ReferenceError: Map is not defined
【发布时间】:2016-04-05 07:20:15
【问题描述】:

我已经为 React Native 编写了一些简单的测试并在 CircleCI 上运行它们,但是我收到以下错误:ReferenceError: Map is not defined

我知道 Map 是一个新的 ES6 功能,但不确定为什么会出现此错误。我的测试脚本包含--compilers babel-core/register,但它看起来不像babel 正在编译react-native-mock 库中的一些代码。

我认为这不是 react-native-mock 特有的,但我确实注意到库在其 test script 中需要 babel-core/register"test": "mocha --require babel-core/register test/**/*.js",

尽管我保存的依赖项中有 babel-core,但我也试过了,得到了 Error: Cannot find module 'js:babel-core/register'

我们将不胜感激任何建设性的帮助。

$ npm test

> BlocMessenger@0.0.1 test /home/ubuntu/Messenger
> mocha --require react-native-mock/mock.js --compilers js:babel-core/register --recursive App/**/__tests__/*.test.js


/home/ubuntu/Messenger/node_modules/react-native-mock/build/api/AppState.js:18
  change: new Map(),
              ^
ReferenceError: Map is not defined
    at Object.<anonymous> (/home/ubuntu/Messenger/node_modules/react-native-mock/build/api/AppState.js:18:15)
    at Module._compile (module.js:456:26)
    at Module._extensions..js (module.js:474:10)
    at Object.require.extensions.(anonymous function) [as .js] (/home/ubuntu/Messenger/node_modules/babel-core/node_modules/babel-register/lib/node.js:134:7)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/ubuntu/Messenger/node_modules/react-native-mock/build/react-native.js:66:13)
    at Module._compile (module.js:456:26)
    at Module._extensions..js (module.js:474:10)
    at Object.require.extensions.(anonymous function) [as .js] (/home/ubuntu/Messenger/node_modules/babel-core/node_modules/babel-register/lib/node.js:134:7)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/ubuntu/Messenger/node_modules/react-native-mock/mock.js:1:85)
    at Module._compile (module.js:456:26)
    at Module._extensions..js (module.js:474:10)
    at Object.require.extensions.(anonymous function) [as .js] (/home/ubuntu/Messenger/node_modules/babel-core/node_modules/babel-register/lib/node.js:134:7)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at args (/home/ubuntu/nvm/v0.10.33/lib/node_modules/mocha/bin/_mocha:310:3)
    at Array.forEach (native)
    at Object.<anonymous> (/home/ubuntu/nvm/v0.10.33/lib/node_modules/mocha/bin/_mocha:309:10)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3
npm ERR! Test failed.  See above for more details.

npm test returned exit code 1

【问题讨论】:

    标签: npm react-native mocha.js


    【解决方案1】:

    解决这个问题需要我添加一个 circle.yml 并指定节点 v5.0.0。这启用了 circle.yml 了解 new Map 在做什么。无论出于何种原因,如果没有此检查,它将无法正常工作

    // circle.yml
    
    machine:
      node:
        version: 5.0.0
    

    https://github.com/Bloc/Messenger/blob/master/circle.yml#L3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-02
      • 1970-01-01
      • 2017-10-02
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      相关资源
      最近更新 更多