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.
Files changed (2) hide show
  1. package/dist/index.js +25 -8
  2. 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.49.3_eslint@8.57.0_typescript@5.4.5/node_modules/@modern-js/module-tools/shims/esm.js
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.49.3_eslint@8.57.0_typescript@5.4.5/node_modules/@modern-js/module-tools/shims/esm.js"() {
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
- ue("Operation cancelled.");
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 = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-rsbuild",
3
- "version": "0.7.0-beta.9",
3
+ "version": "0.7.0",
4
4
  "description": "Create a new Rsbuild project",
5
5
  "homepage": "https://rsbuild.dev",
6
6
  "repository": {