From 796ef7d2deccaeec8c322be388463a7294ee6cde Mon Sep 17 00:00:00 2001 From: Wan Sim <0420syj@naver.com> Date: Wed, 24 May 2023 22:59:08 +0900 Subject: [PATCH 1/2] fix(core): Correct yarn version detection --- packages/docusaurus/bin/beforeCli.mjs | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/packages/docusaurus/bin/beforeCli.mjs b/packages/docusaurus/bin/beforeCli.mjs index da868f2330eb..db85936a3601 100644 --- a/packages/docusaurus/bin/beforeCli.mjs +++ b/packages/docusaurus/bin/beforeCli.mjs @@ -9,6 +9,7 @@ import fs from 'fs-extra'; import path from 'path'; +import yaml from 'js-yaml'; import {createRequire} from 'module'; import logger from '@docusaurus/logger'; import semver from 'semver'; @@ -111,12 +112,24 @@ export default async function beforeCli() { return `npm i ${siteDocusaurusPackagesForUpdate}`; } - const isYarnClassicUsed = !(await fs.pathExists( - path.resolve('.yarnrc.yml'), - )); - return isYarnClassicUsed - ? `yarn upgrade ${siteDocusaurusPackagesForUpdate}` - : `yarn up ${siteDocusaurusPackagesForUpdate}`; + const isYarnrcExists = await fs.pathExists(path.resolve('.yarnrc.yml')); + + if (!isYarnrcExists) { + return `yarn upgrade ${siteDocusaurusPackagesForUpdate}`; + } + + try { + const yamlFile = await fs.readFile(path.resolve('.yarnrc.yml'), 'utf8'); + const yamlData = yaml.safeLoad(yamlFile); + + const isYarn2PlusUsed = 'yarnPath' in yamlData && !yamlData.yarnPath.includes('yarn-1.'); + return isYarn2PlusUsed + ? `yarn up ${siteDocusaurusPackagesForUpdate}` + : `yarn upgrade ${siteDocusaurusPackagesForUpdate}`; + + } catch { + return `yarn upgrade ${siteDocusaurusPackagesForUpdate}`; + } }; /** @type {import('boxen').Options} */ From 883cc825881449f3eda4072ae8b01331e7dac139 Mon Sep 17 00:00:00 2001 From: Wan Sim <0420syj@naver.com> Date: Wed, 24 May 2023 23:28:52 +0900 Subject: [PATCH 2/2] fix(core): Correct yarn version detection --- packages/docusaurus/bin/beforeCli.mjs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/docusaurus/bin/beforeCli.mjs b/packages/docusaurus/bin/beforeCli.mjs index db85936a3601..25d62fba3027 100644 --- a/packages/docusaurus/bin/beforeCli.mjs +++ b/packages/docusaurus/bin/beforeCli.mjs @@ -119,8 +119,7 @@ export default async function beforeCli() { } try { - const yamlFile = await fs.readFile(path.resolve('.yarnrc.yml'), 'utf8'); - const yamlData = yaml.safeLoad(yamlFile); + const yamlData = yaml.load(await fs.readFile(path.resolve('.yarnrc.yml'), 'utf8')); const isYarn2PlusUsed = 'yarnPath' in yamlData && !yamlData.yarnPath.includes('yarn-1.'); return isYarn2PlusUsed