create-rsbuild 0.7.0-beta.9 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +25 -8
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -38,12 +38,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
38
38
|
mod
|
|
39
39
|
));
|
|
40
40
|
|
|
41
|
-
// ../../node_modules/.pnpm/@modern-js+module-tools@2.
|
|
41
|
+
// ../../node_modules/.pnpm/@modern-js+module-tools@2.50.0_eslint@9.3.0_typescript@5.4.5/node_modules/@modern-js/module-tools/shims/esm.js
|
|
42
42
|
import { fileURLToPath } from "url";
|
|
43
43
|
import path from "path";
|
|
44
44
|
var getFilename, getDirname, __dirname;
|
|
45
45
|
var init_esm = __esm({
|
|
46
|
-
"../../node_modules/.pnpm/@modern-js+module-tools@2.
|
|
46
|
+
"../../node_modules/.pnpm/@modern-js+module-tools@2.50.0_eslint@9.3.0_typescript@5.4.5/node_modules/@modern-js/module-tools/shims/esm.js"() {
|
|
47
47
|
"use strict";
|
|
48
48
|
getFilename = () => fileURLToPath(import.meta.url);
|
|
49
49
|
getDirname = () => path.dirname(getFilename());
|
|
@@ -936,10 +936,13 @@ ${gray(rest.join("\n"))}`;
|
|
|
936
936
|
var logger = createLogger();
|
|
937
937
|
|
|
938
938
|
// src/index.ts
|
|
939
|
+
function cancelAndExit() {
|
|
940
|
+
ue("Operation cancelled.");
|
|
941
|
+
process.exit(0);
|
|
942
|
+
}
|
|
939
943
|
function checkCancel(value) {
|
|
940
944
|
if (hD(value)) {
|
|
941
|
-
|
|
942
|
-
process.exit(0);
|
|
945
|
+
cancelAndExit();
|
|
943
946
|
}
|
|
944
947
|
}
|
|
945
948
|
function formatTargetDir(targetDir) {
|
|
@@ -955,6 +958,10 @@ function pkgFromUserAgent(userAgent) {
|
|
|
955
958
|
version: pkgSpecArr[1]
|
|
956
959
|
};
|
|
957
960
|
}
|
|
961
|
+
function isEmptyDir(path3) {
|
|
962
|
+
const files = fs.readdirSync(path3);
|
|
963
|
+
return files.length === 0 || files.length === 1 && files[0] === ".git";
|
|
964
|
+
}
|
|
958
965
|
async function main() {
|
|
959
966
|
console.log("");
|
|
960
967
|
logger.greet("◆ Create Rsbuild Project");
|
|
@@ -971,13 +978,24 @@ async function main() {
|
|
|
971
978
|
if (value.length === 0) {
|
|
972
979
|
return "Target folder is required";
|
|
973
980
|
}
|
|
974
|
-
if (fs.existsSync(path2.join(cwd, value))) {
|
|
975
|
-
return `"${value}" is not empty, please input another folder`;
|
|
976
|
-
}
|
|
977
981
|
}
|
|
978
982
|
});
|
|
979
983
|
checkCancel(targetDir);
|
|
980
984
|
targetDir = formatTargetDir(targetDir);
|
|
985
|
+
const distFolder = path2.join(cwd, targetDir);
|
|
986
|
+
if (fs.existsSync(distFolder) && !isEmptyDir(distFolder)) {
|
|
987
|
+
const option = await ie({
|
|
988
|
+
message: `"${targetDir}" is not empty, please choose:`,
|
|
989
|
+
options: [
|
|
990
|
+
{ value: "yes", label: "Continue and override files" },
|
|
991
|
+
{ value: "no", label: "Cancel operation" }
|
|
992
|
+
]
|
|
993
|
+
});
|
|
994
|
+
checkCancel(option);
|
|
995
|
+
if (option === "no") {
|
|
996
|
+
cancelAndExit();
|
|
997
|
+
}
|
|
998
|
+
}
|
|
981
999
|
const framework = await ie({
|
|
982
1000
|
message: "Select framework",
|
|
983
1001
|
options: [
|
|
@@ -1002,7 +1020,6 @@ async function main() {
|
|
|
1002
1020
|
checkCancel(language);
|
|
1003
1021
|
const srcFolder = path2.join(packageRoot, `template-${framework}-${language}`);
|
|
1004
1022
|
const commonFolder = path2.join(packageRoot, "template-common");
|
|
1005
|
-
const distFolder = path2.join(cwd, targetDir);
|
|
1006
1023
|
copyFolder(commonFolder, distFolder, version);
|
|
1007
1024
|
copyFolder(srcFolder, distFolder, version, path2.basename(targetDir));
|
|
1008
1025
|
const nextSteps = [
|