TypeError: Cannot assign to read only property 'Symbol(Symbol.toStringTag)' of object '#<process>'
Node v11.11.0を使うとjestで上記エラーが発生する。
いくつか解決策があり、1つはjestのバージョンを上げること。
該当PRは以下。
https://github.com/facebook/jest/issues/8069
https://github.com/facebook/jest/pull/8050
jestのバージョンがあげられない場合は、nodeのバージョンを下げること。
node v11.10.0を使えばエラーは発生しない。
node側の該当PRは以下
https://github.com/nodejs/node/pull/26488
PRを見ると、Symbol
のtoStringTag
がwritable: false
に設定されたために発生したエラーの模様。
jest側の対処はわりと暫定的なので、node側の修正を期待したい。
- newProcess[Symbol.toStringTag] = 'process';
+ try {
+ // This fails on Node 12, but it's already set to 'process'
+ newProcess[Symbol.toStringTag] = 'process';
+ } catch (e) {
+ // Make sure it's actually set instead of potentially ignoring errors
+ if (newProcess[Symbol.toStringTag] !== 'process') {
+ e.message =
+ 'Unable to set toStringTag on process. Please open up an issue at https://github.com/facebook/jest\n\n' +
+ e.message;
+
+ throw e;
+ }
+ }