fix(create-medusa-app): fix version option not working with Next.js storefront (#14462)
1. Fix error when passing `--version` and installing Next.js storefront. The error is because the UI package doesn't follow the same versioning as other Medusa packages, so this will skip updating the version of the UI package. 2. Other: added error logging for installation errors
This commit is contained in:
5
.changeset/fifty-parrots-appear.md
Normal file
5
.changeset/fifty-parrots-appear.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"create-medusa-app": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix(create-medusa-app): fix version option not working with Next.js storefront
|
||||||
@@ -5,9 +5,10 @@ import { logger } from "./logger.js"
|
|||||||
type LogOptions = {
|
type LogOptions = {
|
||||||
message: string
|
message: string
|
||||||
type?: "error" | "success" | "info" | "warn" | "verbose"
|
type?: "error" | "success" | "info" | "warn" | "verbose"
|
||||||
|
stack?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ({ message, type = "info" }: LogOptions) => {
|
export default ({ message, type = "info", stack }: LogOptions) => {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case "info":
|
case "info":
|
||||||
logger.info(chalk.white(message))
|
logger.info(chalk.white(message))
|
||||||
@@ -22,6 +23,6 @@ export default ({ message, type = "info" }: LogOptions) => {
|
|||||||
logger.info(`${chalk.bgYellowBright("VERBOSE LOG:")} ${message}`)
|
logger.info(`${chalk.bgYellowBright("VERBOSE LOG:")} ${message}`)
|
||||||
break
|
break
|
||||||
case "error":
|
case "error":
|
||||||
program.error(chalk.bold.red(message))
|
program.error(chalk.bold.red(message.trim() + (stack || "")))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -204,15 +204,18 @@ export class MedusaProjectCreator
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
private handleError(e: any): void {
|
private handleError(e: Error): void {
|
||||||
if (isAbortError(e)) {
|
if (isAbortError(e)) {
|
||||||
process.exit()
|
process.exit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const showStack = e.message.includes("npm") || e.message.includes("yarn")
|
||||||
|
|
||||||
this.spinner.stop()
|
this.spinner.stop()
|
||||||
logMessage({
|
logMessage({
|
||||||
message: `An error occurred: ${e}`,
|
message: `An error occurred: ${e}`,
|
||||||
type: "error",
|
type: "error",
|
||||||
|
stack: showStack ? e.stack?.replace(e.toString(), "") : "",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ export function updatePackageVersions(
|
|||||||
|
|
||||||
if (packageJson.dependencies) {
|
if (packageJson.dependencies) {
|
||||||
for (const dependency of Object.keys(packageJson.dependencies)) {
|
for (const dependency of Object.keys(packageJson.dependencies)) {
|
||||||
if (dependency.startsWith("@medusajs/")) {
|
if (shouldUpdateVersion(dependency)) {
|
||||||
packageJson.dependencies[dependency] = version
|
packageJson.dependencies[dependency] = version
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (packageJson.devDependencies) {
|
if (packageJson.devDependencies) {
|
||||||
for (const dependency of Object.keys(packageJson.devDependencies)) {
|
for (const dependency of Object.keys(packageJson.devDependencies)) {
|
||||||
if (dependency.startsWith("@medusajs/")) {
|
if (shouldUpdateVersion(dependency)) {
|
||||||
packageJson.devDependencies[dependency] = version
|
packageJson.devDependencies[dependency] = version
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -29,3 +29,9 @@ export function updatePackageVersions(
|
|||||||
writeFileSync(packageJsonOrPath, JSON.stringify(packageJson, null, 2))
|
writeFileSync(packageJsonOrPath, JSON.stringify(packageJson, null, 2))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function shouldUpdateVersion(dependency: string): boolean {
|
||||||
|
// UI package follows different versioning, so we can't update it following
|
||||||
|
// the same logic as other Medusa packages
|
||||||
|
return dependency.startsWith("@medusajs/") && dependency !== "@medusajs/ui"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user