summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/real-balloons-cough.md5
-rw-r--r--packages/create-astro/src/actions/template.ts8
2 files changed, 10 insertions, 3 deletions
diff --git a/.changeset/real-balloons-cough.md b/.changeset/real-balloons-cough.md
new file mode 100644
index 000000000..d8ba66c63
--- /dev/null
+++ b/.changeset/real-balloons-cough.md
@@ -0,0 +1,5 @@
+---
+'create-astro': patch
+---
+
+Respect original `package.json` indentation
diff --git a/packages/create-astro/src/actions/template.ts b/packages/create-astro/src/actions/template.ts
index 5804fbb58..f99726b1c 100644
--- a/packages/create-astro/src/actions/template.ts
+++ b/packages/create-astro/src/actions/template.ts
@@ -50,17 +50,19 @@ const FILES_TO_UPDATE = {
'package.json': (file: string, overrides: { name: string }) =>
fs.promises
.readFile(file, 'utf-8')
- .then((value) =>
+ .then((value) => {
+ // Match first indent in the file or fallback to `\t`
+ const indent = /(^\s+)/m.exec(value)?.[1] ?? '\t';
fs.promises.writeFile(
file,
JSON.stringify(
Object.assign(JSON.parse(value), Object.assign(overrides, { private: undefined })),
null,
- '\t'
+ indent
),
'utf-8'
)
- ),
+ }),
};
export default async function copyTemplate(tmpl: string, ctx: Context) {