diff options
| -rw-r--r-- | gui/package.json | 1 | ||||
| -rw-r--r-- | gui/unpatch-yarn.js | 24 |
2 files changed, 25 insertions, 0 deletions
diff --git a/gui/package.json b/gui/package.json index eccc37a3ea..c6eed545c5 100644 --- a/gui/package.json +++ b/gui/package.json @@ -4,6 +4,7 @@ "packages/*" ], "scripts": { + "postinstall": "node unpatch-yarn.js", "flow": "flow", "lint": "eslint \"packages/**/*.js\"", "format": "yarn run private:format --write", diff --git a/gui/unpatch-yarn.js b/gui/unpatch-yarn.js new file mode 100644 index 0000000000..0bf85629ac --- /dev/null +++ b/gui/unpatch-yarn.js @@ -0,0 +1,24 @@ +// This is a companion script that reverts the effect of preinstall script in +// `\gui\packages\yarn-fixes`. +// +// The symlink to `\gui\node_modules\node_modules` that fixes the bug, described in +// https://github.com/yarnpkg/yarn/issues/4564, must be removed after node modules installation, +// because circular symlinks cause scripts like electron-builder to crash. + +const path = require('path'); +const fs = require('fs'); + +if (process.platform !== 'win32') { + return; +} + +const symlinkPath = path.join(__dirname, 'node_modules/node_modules'); + +try { + console.log('Removing a symlink to node_modules/node_modules'); + fs.unlinkSync(symlinkPath); +} catch (error) { + if (error.code !== 'ENOENT') { + throw error; + } +} |
