From 938df2b612dfbd13e151058de069309f1c90df82 Mon Sep 17 00:00:00 2001 From: Olyno Date: Sun, 13 Feb 2022 13:44:31 +0100 Subject: [PATCH 1/4] fix: path of project root (fix #6896) --- packages/create-vite/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-vite/index.js b/packages/create-vite/index.js index cc0a78639755bb..45110eeb5476aa 100755 --- a/packages/create-vite/index.js +++ b/packages/create-vite/index.js @@ -222,7 +222,7 @@ async function init() { // user choice associated with prompts const { framework, overwrite, packageName, variant } = result - const root = path.join(cwd, targetDir) + const root = path.resolve(cwd, targetDir) if (overwrite) { emptyDir(root) From 29e2ff73608364cc9f6d3adc96fb0c08c6e6aa8c Mon Sep 17 00:00:00 2001 From: Olyno Date: Sun, 13 Feb 2022 15:04:15 +0100 Subject: [PATCH 2/4] fix: root path security concern --- packages/create-vite/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-vite/index.js b/packages/create-vite/index.js index 45110eeb5476aa..9ab1293f058288 100755 --- a/packages/create-vite/index.js +++ b/packages/create-vite/index.js @@ -145,7 +145,7 @@ async function init() { message: reset('Project name:'), initial: defaultProjectName, onState: (state) => - (targetDir = state.value.trim() || defaultProjectName) + (targetDir = state.value.trim().replace(/\/+$/g, '') || defaultProjectName) }, { type: () => From 188731503b6324b4e015cd159bf8101eece36cea Mon Sep 17 00:00:00 2001 From: Olyno Date: Mon, 14 Feb 2022 23:04:50 +0100 Subject: [PATCH 3/4] revert: feat: use path.resolve instead of path.join --- packages/create-vite/index.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/create-vite/index.js b/packages/create-vite/index.js index 9ab1293f058288..7e243092ed66ae 100755 --- a/packages/create-vite/index.js +++ b/packages/create-vite/index.js @@ -129,7 +129,7 @@ const renameFiles = { } async function init() { - let targetDir = argv._[0] + let targetDir = argv._[0].replace(/\/+$/g, '') let template = argv.template || argv.t const defaultProjectName = !targetDir ? 'vite-project' : targetDir @@ -145,7 +145,8 @@ async function init() { message: reset('Project name:'), initial: defaultProjectName, onState: (state) => - (targetDir = state.value.trim().replace(/\/+$/g, '') || defaultProjectName) + (targetDir = + state.value.trim().replace(/\/+$/g, '') || defaultProjectName) }, { type: () => @@ -222,7 +223,7 @@ async function init() { // user choice associated with prompts const { framework, overwrite, packageName, variant } = result - const root = path.resolve(cwd, targetDir) + const root = path.join(cwd, targetDir) if (overwrite) { emptyDir(root) From f33951ffd7a67d555c61558505499556a5d79440 Mon Sep 17 00:00:00 2001 From: Olyno Date: Mon, 14 Feb 2022 23:17:41 +0100 Subject: [PATCH 4/4] fix: undefined property call --- packages/create-vite/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/create-vite/index.js b/packages/create-vite/index.js index 7e243092ed66ae..3075fef2390aab 100755 --- a/packages/create-vite/index.js +++ b/packages/create-vite/index.js @@ -129,10 +129,12 @@ const renameFiles = { } async function init() { - let targetDir = argv._[0].replace(/\/+$/g, '') + let targetDir = argv._[0] let template = argv.template || argv.t - const defaultProjectName = !targetDir ? 'vite-project' : targetDir + const defaultProjectName = !targetDir + ? 'vite-project' + : targetDir.trim().replace(/\/+$/g, '') let result = {}