Skip to content

Commit

Permalink
fix(crwa): remove yarn-install option for yarn 1 (#9881)
Browse files Browse the repository at this point in the history
Follow up to #9861.
  • Loading branch information
jtoar authored Jan 25, 2024
1 parent f1cdb71 commit 323d7ae
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 10 deletions.
44 changes: 36 additions & 8 deletions packages/create-redwood-app/src/create-redwood-app.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,20 @@ const { telemetry } = Parser(hideBin(process.argv), {

const tui = new RedwoodTUI()

function isYarnBerryOrNewer() {
const { npm_config_user_agent: npmConfigUserAgent } = process.env

if (npmConfigUserAgent) {
const match = npmConfigUserAgent.match(/yarn\/(\d+)/)

if (match && match[1]) {
return parseInt(match[1], 10) >= 2
}
}

return false
}

const USE_GITPOD_TEXT = [
` As an alternative solution, you can launch a Redwood project using GitPod instead. GitPod is a an online IDE.`,
` See: ${terminalLink(
Expand Down Expand Up @@ -669,18 +683,24 @@ async function createRedwoodApp() {
type: 'string',
describe: 'Commit message for the initial commit',
})
.option('yarn-install', {
default: null,
type: 'boolean',
describe: 'Install node modules. Skip via --no-yarn-install.',
})
.option('telemetry', {
default: true,
type: 'boolean',
describe:
'Enables sending telemetry events for this create command and all Redwood CLI commands https://telemetry.redwoodjs.com',
})

const _isYarnBerryOrNewer = isYarnBerryOrNewer()

// Only add the yarn-install flag if the yarn version is >= 2
if (_isYarnBerryOrNewer) {
cli.option('yarn-install', {
default: null,
type: 'boolean',
describe: 'Install node modules. Skip via --no-yarn-install.',
})
}

const parsedFlags = cli.parse()

tui.drawText(
Expand All @@ -696,7 +716,9 @@ async function createRedwoodApp() {
// Extract the args as provided by the user in the command line
// TODO: Make all flags have the 'flag' suffix
const args = parsedFlags._
const yarnInstallFlag = parsedFlags['yarn-install'] ?? parsedFlags.yes
const yarnInstallFlag =
parsedFlags['yarn-install'] ??
(_isYarnBerryOrNewer ? parsedFlags.yes : null)
const typescriptFlag = parsedFlags.typescript ?? parsedFlags.yes
const overwrite = parsedFlags.overwrite
const gitInitFlag = parsedFlags['git-init'] ?? parsedFlags.yes
Expand Down Expand Up @@ -734,7 +756,11 @@ async function createRedwoodApp() {
commitMessage = await handleCommitMessagePreference(commitMessageFlag)
}

const yarnInstall = await handleYarnInstallPreference(yarnInstallFlag)
let yarnInstall = false

if (_isYarnBerryOrNewer) {
yarnInstall = await handleYarnInstallPreference(yarnInstallFlag)
}

let newAppDir = path.resolve(process.cwd(), targetDir)

Expand All @@ -750,7 +776,9 @@ async function createRedwoodApp() {
.getActiveSpan()
?.setAttribute('yarn-install-time', Date.now() - yarnInstallStart)
} else {
tui.drawText(`${RedwoodStyling.info('ℹ')} Skipped yarn install step`)
if (_isYarnBerryOrNewer) {
tui.drawText(`${RedwoodStyling.info('ℹ')} Skipped yarn install step`)
}
}

// Generate types
Expand Down
4 changes: 2 additions & 2 deletions packages/create-redwood-app/tests/e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ describe('create-redwood-app', () => {
--git-init, --git Initialize a git repository [boolean] [default: null]
-m, --commit-message Commit message for the initial commit
[string] [default: null]
--yarn-install Install node modules. Skip via --no-yarn-install.
[boolean] [default: null]
--telemetry Enables sending telemetry events for this create
command and all Redwood CLI commands
https://telemetry.redwoodjs.com
[boolean] [default: true]
--yarn-install Install node modules. Skip via --no-yarn-install.
[boolean] [default: null]
Examples:
create-redwood-app my-redwood-app
Expand Down

0 comments on commit 323d7ae

Please sign in to comment.