diff --git a/tools/js-sdk-release-tools/src/utils/backupNodeModules.ts b/tools/js-sdk-release-tools/src/utils/backupNodeModules.ts index 57d31aba22f..17c2308af7d 100644 --- a/tools/js-sdk-release-tools/src/utils/backupNodeModules.ts +++ b/tools/js-sdk-release-tools/src/utils/backupNodeModules.ts @@ -13,10 +13,15 @@ export async function backupNodeModules(folder: string) { } export async function restoreNodeModules(folder: string) { - const nodeModulesPath = path.join(folder, "node_modules_backup"); - if (fs.existsSync(nodeModulesPath)) { - logger.info(`Start to rename '${nodeModulesPath}' to '${nodeModulesPath.replace('_backup', '')}'.`); - fs.renameSync(nodeModulesPath, `${nodeModulesPath.replace('_backup', '')}`); + const nodeModulesBackupPath = path.join(folder, "node_modules_backup"); + if (fs.existsSync(nodeModulesBackupPath)) { + const nodeModulesPath = nodeModulesBackupPath.replace('_backup', ''); + if (fs.existsSync(nodeModulesPath)) { + logger.info(`Remove existing '${nodeModulesPath}' first.`); + fs.rmSync(nodeModulesPath, { recursive: true, force: true }); + } + logger.info(`Start to rename '${nodeModulesBackupPath}' to '${nodeModulesPath}'.`); + fs.renameSync(nodeModulesBackupPath, nodeModulesPath); } if ('/' === path.dirname(folder)) return; await restoreNodeModules(path.dirname(folder));