Travis / Jest:TypeError:无法分配为对象“#<process>”的只读属性“ Symbol(Symbol.toStringTag)”

时间:2019-03-08 09:00:05

标签: javascript reactjs typescript jestjs travis-ci

我的所有jest typescript测试都在我的travis管道中失败,并抛出以下错误:

TypeError: Cannot assign to read only property 'Symbol(Symbol.toStringTag)' of object '#<process>'

这突然发生了,我没有更改代码中的任何特定内容。在本地,一切正常。

有什么想法会发生什么?

6 个答案:

答案 0 :(得分:60)

这是节点v11.11附带的错误。您可以降级到v11.10或等待Facebook已经推送https://github.com/facebook/create-react-app/issues/6591

的修复

如果您的问题与TravisCI有关,则可以设置一个有效的固定版本:

node_js:
  - "11.10.1"

答案 1 :(得分:21)

您还可以将jest的版本升级到24.3.0,此问题已解决。我相信,与降级您的节点相比,这是一种更可靠的解决方案。

答案 2 :(得分:4)

通过将节点升级到v11.12.0对我来说已解决

答案 3 :(得分:2)

对于无法通过以上任一答案解决问题的人,请尝试将您的笑话升级到^ 24.3.0并降级客户端容器的docker映像中的节点版本。我使用FROM node:11.10-alpine时并没有降低TravisCI使用的节点版本。

答案 4 :(得分:1)

主要有两种解决方案

  • 将您的笑话版本升级到24.3.0(这对我不起作用)
  • 将您的节点版本降级到11.10.1

我知道降级节点版本不是一个好的解决方案,但是对于那些想运行测试的人来说,可以尝试一下。通过将其节点版本从11.11.1降级到11.10.1 安装程序包调用“ n”。 此n软件包可帮助您交互式管理Node.js版本

npm install -g  n

安装后,您只需运行

sudo n 11.10.1

您的节点版本将被更改,您可以通过运行来检查节点版本

node --version

稍后可以在那里进行测试

npm test

对我有用 希望对您有所帮助:)

答案 5 :(得分:1)

如果您使用nvm(节点版本管理器),

const clickHandler = order =>{
    switch(order):{
        case 'asc': return this.setState({data : this.state.data.sort((a,b)=> a-b) })

        case 'desc' : return this.setState({data : this.state.data.sort((a,b) => b-a)})
   }

}
nvm install v11