From 6aec8268c33b0a67f34987aa993fca1acddb37c8 Mon Sep 17 00:00:00 2001
From: Tommy Nguyen <4123478+tido64@users.noreply.github.com>
Date: Thu, 11 Jun 2026 10:19:27 +0200
Subject: [PATCH 1/2] fix(windows): separate `.wapproj` from `.vcxproj` to
prevent output from being overwritten
MSBuild was overwriting `packages.lock.json` (and files in `obj/`),
causing random build issues.
---
packages/app/test/pack.test.mts | 48 +++++++++---------
.../Images/SplashScreen.scale-100.png | Bin
.../Images/SplashScreen.scale-200.png | Bin
.../Images/SplashScreen.scale-400.png | Bin
.../Images/Square150x150Logo.scale-100.png | Bin
.../Images/Square150x150Logo.scale-200.png | Bin
.../Images/Square150x150Logo.scale-400.png | Bin
...go.altform-lightunplated_targetsize-16.png | Bin
...o.altform-lightunplated_targetsize-256.png | Bin
...go.altform-lightunplated_targetsize-48.png | Bin
...x44Logo.altform-unplated_targetsize-16.png | Bin
...44Logo.altform-unplated_targetsize-256.png | Bin
...x44Logo.altform-unplated_targetsize-48.png | Bin
.../Images/Square44x44Logo.scale-100.png | Bin
.../Images/Square44x44Logo.scale-200.png | Bin
.../Images/Square44x44Logo.scale-400.png | Bin
.../Images/Square44x44Logo.targetsize-16.png | Bin
.../Images/Square44x44Logo.targetsize-256.png | Bin
.../Images/Square44x44Logo.targetsize-48.png | Bin
.../Images/StoreLogo.scale-100.png | Bin
.../Images/StoreLogo.scale-200.png | Bin
.../Images/StoreLogo.scale-400.png | Bin
.../Images/Wide310x150Logo.scale-200.png | Bin
.../Package.appxmanifest | 0
.../ReactApp.Package.wapproj | 4 +-
packages/app/windows/app.mjs | 10 ++--
packages/app/windows/win32.mjs | 6 +--
27 files changed, 34 insertions(+), 34 deletions(-)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/SplashScreen.scale-100.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/SplashScreen.scale-200.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/SplashScreen.scale-400.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square150x150Logo.scale-100.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square150x150Logo.scale-200.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square150x150Logo.scale-400.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.altform-unplated_targetsize-16.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.altform-unplated_targetsize-256.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.altform-unplated_targetsize-48.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.scale-100.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.scale-200.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.scale-400.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.targetsize-16.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.targetsize-256.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Square44x44Logo.targetsize-48.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/StoreLogo.scale-100.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/StoreLogo.scale-200.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/StoreLogo.scale-400.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Images/Wide310x150Logo.scale-200.png (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/Package.appxmanifest (100%)
rename packages/app/windows/Win32/{ => ReactApp.Package}/ReactApp.Package.wapproj (98%)
diff --git a/packages/app/test/pack.test.mts b/packages/app/test/pack.test.mts
index 77ff7b5d9..ef965a60b 100644
--- a/packages/app/test/pack.test.mts
+++ b/packages/app/test/pack.test.mts
@@ -284,35 +284,35 @@ describe("npm pack", () => {
"windows/Win32/AutolinkedNativeModules.g.h",
"windows/Win32/DevMenu.cpp",
"windows/Win32/DevMenu.h",
- "windows/Win32/Images/SplashScreen.scale-100.png",
- "windows/Win32/Images/SplashScreen.scale-200.png",
- "windows/Win32/Images/SplashScreen.scale-400.png",
- "windows/Win32/Images/Square150x150Logo.scale-100.png",
- "windows/Win32/Images/Square150x150Logo.scale-200.png",
- "windows/Win32/Images/Square150x150Logo.scale-400.png",
- "windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png",
- "windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png",
- "windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png",
- "windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-16.png",
- "windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-256.png",
- "windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-48.png",
- "windows/Win32/Images/Square44x44Logo.scale-100.png",
- "windows/Win32/Images/Square44x44Logo.scale-200.png",
- "windows/Win32/Images/Square44x44Logo.scale-400.png",
- "windows/Win32/Images/Square44x44Logo.targetsize-16.png",
- "windows/Win32/Images/Square44x44Logo.targetsize-256.png",
- "windows/Win32/Images/Square44x44Logo.targetsize-48.png",
- "windows/Win32/Images/StoreLogo.scale-100.png",
- "windows/Win32/Images/StoreLogo.scale-200.png",
- "windows/Win32/Images/StoreLogo.scale-400.png",
- "windows/Win32/Images/Wide310x150Logo.scale-200.png",
"windows/Win32/Main.cpp",
"windows/Win32/Main.h",
"windows/Win32/Main.ico",
"windows/Win32/Main.rc",
"windows/Win32/Main.small.ico",
- "windows/Win32/Package.appxmanifest",
- "windows/Win32/ReactApp.Package.wapproj",
+ "windows/Win32/ReactApp.Package/Images/SplashScreen.scale-100.png",
+ "windows/Win32/ReactApp.Package/Images/SplashScreen.scale-200.png",
+ "windows/Win32/ReactApp.Package/Images/SplashScreen.scale-400.png",
+ "windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-100.png",
+ "windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-200.png",
+ "windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-400.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-16.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-256.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-48.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-100.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-200.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-400.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-16.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-256.png",
+ "windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-48.png",
+ "windows/Win32/ReactApp.Package/Images/StoreLogo.scale-100.png",
+ "windows/Win32/ReactApp.Package/Images/StoreLogo.scale-200.png",
+ "windows/Win32/ReactApp.Package/Images/StoreLogo.scale-400.png",
+ "windows/Win32/ReactApp.Package/Images/Wide310x150Logo.scale-200.png",
+ "windows/Win32/ReactApp.Package/Package.appxmanifest",
+ "windows/Win32/ReactApp.Package/ReactApp.Package.wapproj",
"windows/Win32/ReactApp.vcxproj",
"windows/Win32/ReactApp.vcxproj.filters",
"windows/Win32/pch.cpp",
diff --git a/packages/app/windows/Win32/Images/SplashScreen.scale-100.png b/packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-100.png
similarity index 100%
rename from packages/app/windows/Win32/Images/SplashScreen.scale-100.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-100.png
diff --git a/packages/app/windows/Win32/Images/SplashScreen.scale-200.png b/packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-200.png
similarity index 100%
rename from packages/app/windows/Win32/Images/SplashScreen.scale-200.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-200.png
diff --git a/packages/app/windows/Win32/Images/SplashScreen.scale-400.png b/packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-400.png
similarity index 100%
rename from packages/app/windows/Win32/Images/SplashScreen.scale-400.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-400.png
diff --git a/packages/app/windows/Win32/Images/Square150x150Logo.scale-100.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-100.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square150x150Logo.scale-100.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-100.png
diff --git a/packages/app/windows/Win32/Images/Square150x150Logo.scale-200.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-200.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square150x150Logo.scale-200.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-200.png
diff --git a/packages/app/windows/Win32/Images/Square150x150Logo.scale-400.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-400.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square150x150Logo.scale-400.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-400.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-16.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-16.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-16.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-16.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-256.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-256.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-256.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-256.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-48.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-48.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-48.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-48.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.scale-100.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-100.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.scale-100.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-100.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.scale-200.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-200.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.scale-200.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-200.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.scale-400.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-400.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.scale-400.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-400.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.targetsize-16.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-16.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.targetsize-16.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-16.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.targetsize-256.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-256.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.targetsize-256.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-256.png
diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.targetsize-48.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-48.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Square44x44Logo.targetsize-48.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-48.png
diff --git a/packages/app/windows/Win32/Images/StoreLogo.scale-100.png b/packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-100.png
similarity index 100%
rename from packages/app/windows/Win32/Images/StoreLogo.scale-100.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-100.png
diff --git a/packages/app/windows/Win32/Images/StoreLogo.scale-200.png b/packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-200.png
similarity index 100%
rename from packages/app/windows/Win32/Images/StoreLogo.scale-200.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-200.png
diff --git a/packages/app/windows/Win32/Images/StoreLogo.scale-400.png b/packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-400.png
similarity index 100%
rename from packages/app/windows/Win32/Images/StoreLogo.scale-400.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-400.png
diff --git a/packages/app/windows/Win32/Images/Wide310x150Logo.scale-200.png b/packages/app/windows/Win32/ReactApp.Package/Images/Wide310x150Logo.scale-200.png
similarity index 100%
rename from packages/app/windows/Win32/Images/Wide310x150Logo.scale-200.png
rename to packages/app/windows/Win32/ReactApp.Package/Images/Wide310x150Logo.scale-200.png
diff --git a/packages/app/windows/Win32/Package.appxmanifest b/packages/app/windows/Win32/ReactApp.Package/Package.appxmanifest
similarity index 100%
rename from packages/app/windows/Win32/Package.appxmanifest
rename to packages/app/windows/Win32/ReactApp.Package/Package.appxmanifest
diff --git a/packages/app/windows/Win32/ReactApp.Package.wapproj b/packages/app/windows/Win32/ReactApp.Package/ReactApp.Package.wapproj
similarity index 98%
rename from packages/app/windows/Win32/ReactApp.Package.wapproj
rename to packages/app/windows/Win32/ReactApp.Package/ReactApp.Package.wapproj
index 2f8bc6255..db28d6c56 100644
--- a/packages/app/windows/Win32/ReactApp.Package.wapproj
+++ b/packages/app/windows/Win32/ReactApp.Package/ReactApp.Package.wapproj
@@ -5,7 +5,7 @@
{b44cead7-fbff-4a17-95eb-ff5434bbd79d}
$(WindowsTargetPlatformVersion)
en-US
- ReactApp.vcxproj
+ ..\ReactApp.vcxproj
NativeOnly
NativeOnly
@@ -87,7 +87,7 @@
-
+
True
diff --git a/packages/app/windows/app.mjs b/packages/app/windows/app.mjs
index b4d66ba0b..f0bc40a33 100755
--- a/packages/app/windows/app.mjs
+++ b/packages/app/windows/app.mjs
@@ -128,6 +128,8 @@ export async function copyAndReplace(
replacements,
fs = nodefs.promises
) {
+ mkdir_p(path.dirname(destPath));
+
if (!replacements) {
return cp_r(srcPath, destPath, nodefs);
}
@@ -208,6 +210,7 @@ export async function generateSolution(destPath, options, fs = nodefs) {
const slnPath = path.join(destPath, `${info.bundle.appName}.sln`);
const vcxprojPath = path.join(projectFilesDestPath, projectFileName);
const vcxprojLocalPath = path.relative(destPath, vcxprojPath);
+ const wapprojPath = "ReactApp.Package\\ReactApp.Package.wapproj";
copyTasks.push(
writeTextFile(
slnPath,
@@ -230,11 +233,8 @@ export async function generateSolution(destPath, options, fs = nodefs) {
`"${path.relative(destPath, rnWindowsPath)}\\`
)
.replace(
- "ReactApp.Package\\ReactApp.Package.wapproj", // Win32
- vcxprojLocalPath.replace(
- "ReactApp.vcxproj",
- "ReactApp.Package.wapproj"
- )
+ wapprojPath, // Win32
+ vcxprojLocalPath.replace("ReactApp.vcxproj", wapprojPath)
)
.replace("ReactApp\\ReactApp.vcxproj", vcxprojLocalPath) // Win32
.replace("ReactTestApp\\ReactTestApp.vcxproj", vcxprojLocalPath) // UWP
diff --git a/packages/app/windows/win32.mjs b/packages/app/windows/win32.mjs
index b97ac352e..ec682faa0 100644
--- a/packages/app/windows/win32.mjs
+++ b/packages/app/windows/win32.mjs
@@ -13,13 +13,13 @@ export function configureForWin32({
projectFileName: "ReactApp.vcxproj",
projectFiles: [
["AutolinkedNativeModules.g.cpp"],
- ["Images"],
["Main.ico"],
["Main.rc"],
["Main.small.ico"],
- ["Package.appxmanifest"],
+ ["ReactApp.Package/Images"],
+ ["ReactApp.Package/Package.appxmanifest"],
[
- "ReactApp.Package.wapproj",
+ "ReactApp.Package/ReactApp.Package.wapproj",
{
"": bundle.contentItems,
},
From 0ad1556ce7e777523fcf1b791be225f2b2114647 Mon Sep 17 00:00:00 2001
From: Tommy Nguyen <4123478+tido64@users.noreply.github.com>
Date: Thu, 11 Jun 2026 11:15:54 +0200
Subject: [PATCH 2/2] correctly forward fs
---
packages/app/test/windows/copyAndReplace.test.mts | 2 +-
packages/app/windows/app.mjs | 15 ++++++++-------
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/packages/app/test/windows/copyAndReplace.test.mts b/packages/app/test/windows/copyAndReplace.test.mts
index 8b712a3f9..3b5aa1eb6 100644
--- a/packages/app/test/windows/copyAndReplace.test.mts
+++ b/packages/app/test/windows/copyAndReplace.test.mts
@@ -6,7 +6,7 @@ import { fs, setMockFiles } from "../fs.mock.mts";
describe("copyAndReplace()", () => {
const copyAndReplace: typeof copyAndReplaceActual = (src, dst, r) =>
- copyAndReplaceActual(src, dst, r, fs.promises);
+ copyAndReplaceActual(src, dst, r, fs);
const readTextFile: typeof readTextFileActual = (p) =>
readTextFileActual(p, fs);
diff --git a/packages/app/windows/app.mjs b/packages/app/windows/app.mjs
index f0bc40a33..490037b49 100755
--- a/packages/app/windows/app.mjs
+++ b/packages/app/windows/app.mjs
@@ -126,17 +126,19 @@ export async function copyAndReplace(
srcPath,
destPath,
replacements,
- fs = nodefs.promises
+ fs = nodefs
) {
- mkdir_p(path.dirname(destPath));
+ mkdir_p(path.dirname(destPath), fs);
if (!replacements) {
- return cp_r(srcPath, destPath, nodefs);
+ return cp_r(srcPath, destPath, fs);
}
+ const fsp = fs.promises;
+
// Treat as text file
- const data = await fs.readFile(srcPath, { encoding: "utf-8" });
- return writeTextFile(destPath, replaceContent(data, replacements), fs);
+ const data = await fsp.readFile(srcPath, { encoding: "utf-8" });
+ return writeTextFile(destPath, replaceContent(data, replacements), fsp);
}
/**
@@ -187,8 +189,7 @@ export async function generateSolution(destPath, options, fs = nodefs) {
mkdir_p(destPath, fs);
/** @type {typeof copyAndReplace} */
- const copyAndReplaceAsync = (src, dst, r) =>
- copyAndReplace(src, dst, r, fs.promises);
+ const copyAndReplaceAsync = (src, dst, r) => copyAndReplace(src, dst, r, fs);
const copyTasks = projectFiles.map(([file, replacements]) =>
copyAndReplaceAsync(