From 718180f39f5335dc43547ff214971bc52f36ee12 Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Tue, 11 Apr 2023 21:40:56 +0800 Subject: [PATCH 1/2] feat: if use playwright to add related extension recommendations --- index.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/index.ts b/index.ts index 6f912e1fb..af6029678 100755 --- a/index.ts +++ b/index.ts @@ -307,7 +307,13 @@ async function init() { const templateDir = path.resolve(templateRoot, templateName) renderTemplate(templateDir, root) } - + const addPlaywrightExtensions = function addPlaywrightExtensions() { + const extensionDir = path.resolve(root, '.vscode/extensions.json') + const json = fs.readFileSync(extensionDir, 'utf-8') + const obj = JSON.parse(json) + obj.recommendations.push('ms-playwright.playwright') + fs.writeFileSync(path.resolve(root, '.vscode/extensions.json'), JSON.stringify(obj, null, 2)) + } // Render base template render('base') @@ -332,6 +338,7 @@ async function init() { } if (needsPlaywright) { render('config/playwright') + addPlaywrightExtensions() } if (needsTypeScript) { render('config/typescript') @@ -447,7 +454,9 @@ async function init() { console.log(`\nDone. Now run:\n`) if (root !== cwd) { const cdProjectName = path.relative(cwd, root) - console.log(` ${bold(green(`cd ${cdProjectName.includes(' ') ? `"${cdProjectName}"` : cdProjectName}`))}`) + console.log( + ` ${bold(green(`cd ${cdProjectName.includes(' ') ? `"${cdProjectName}"` : cdProjectName}`))}` + ) } console.log(` ${bold(green(getCommand(packageManager, 'install')))}`) if (needsPrettier) { From d29309d8ed5c092f66a90466eb70eaa83b4b1408 Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Thu, 4 May 2023 21:22:21 +0800 Subject: [PATCH 2/2] feat: playwright template add vscode folder --- index.ts | 8 -------- template/config/playwright/.vscode/extensions.json | 3 +++ utils/renderTemplate.ts | 9 +++++++++ 3 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 template/config/playwright/.vscode/extensions.json diff --git a/index.ts b/index.ts index af6029678..36997386e 100755 --- a/index.ts +++ b/index.ts @@ -307,13 +307,6 @@ async function init() { const templateDir = path.resolve(templateRoot, templateName) renderTemplate(templateDir, root) } - const addPlaywrightExtensions = function addPlaywrightExtensions() { - const extensionDir = path.resolve(root, '.vscode/extensions.json') - const json = fs.readFileSync(extensionDir, 'utf-8') - const obj = JSON.parse(json) - obj.recommendations.push('ms-playwright.playwright') - fs.writeFileSync(path.resolve(root, '.vscode/extensions.json'), JSON.stringify(obj, null, 2)) - } // Render base template render('base') @@ -338,7 +331,6 @@ async function init() { } if (needsPlaywright) { render('config/playwright') - addPlaywrightExtensions() } if (needsTypeScript) { render('config/typescript') diff --git a/template/config/playwright/.vscode/extensions.json b/template/config/playwright/.vscode/extensions.json new file mode 100644 index 000000000..7b3f8bdae --- /dev/null +++ b/template/config/playwright/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["ms-playwright.playwright"] +} diff --git a/utils/renderTemplate.ts b/utils/renderTemplate.ts index 529b1f174..bbfe40082 100644 --- a/utils/renderTemplate.ts +++ b/utils/renderTemplate.ts @@ -41,6 +41,15 @@ function renderTemplate(src, dest) { return } + if (filename === 'extensions.json' && fs.existsSync(dest)) { + // merge instead of overwriting + const existing = JSON.parse(fs.readFileSync(dest, 'utf8')) + const newExtensions = JSON.parse(fs.readFileSync(src, 'utf8')) + const extensions = deepMerge(existing, newExtensions) + fs.writeFileSync(dest, JSON.stringify(extensions, null, 2) + '\n') + return + } + if (filename.startsWith('_')) { // rename `_file` to `.file` dest = path.resolve(path.dirname(dest), filename.replace(/^_/, '.'))
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: