zixulu 1.37.0 → 1.37.2
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/utils/initProject.js +7 -1
- package/dist/utils/initProject.js.map +2 -2
- package/dist/utils/writeRsbuildConfig.d.ts +1 -1
- package/dist/utils/writeRsbuildConfig.js +5 -2
- package/dist/utils/writeRsbuildConfig.js.map +2 -2
- package/package.json +1 -1
- package/src/utils/initProject.ts +6 -1
- package/src/utils/writeRsbuildConfig.ts +5 -2
|
@@ -59,6 +59,10 @@ async function initProject() {
|
|
|
59
59
|
import_consola.default.error("仅支持 React 项目");
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
|
+
(0, import_addDependency.addDependency)({
|
|
63
|
+
package: ["@types/node"],
|
|
64
|
+
type: "devDependencies"
|
|
65
|
+
});
|
|
62
66
|
let type;
|
|
63
67
|
if (allDependcies.some((item) => item === "next")) {
|
|
64
68
|
type = import_constant.ProjectType.next;
|
|
@@ -85,7 +89,7 @@ async function initProject() {
|
|
|
85
89
|
await (0, import_removeESLint.removeESLint)();
|
|
86
90
|
}
|
|
87
91
|
const isFullStack = type === import_constant.ProjectType.next || type === import_constant.ProjectType.remix;
|
|
88
|
-
const choices = isFullStack ? ["antd", "ahooks", "dayjs", "deepsea-components", "deepsea-tools", "prisma", "tailwind", "zod", "@emotion/css"] : ["antd", "ahooks", "dayjs", "deepsea-components", "deepsea-tools", "tailwind", "@emotion/css", "react-router-dom"];
|
|
92
|
+
const choices = isFullStack ? ["antd", "ahooks", "dayjs", "deepsea-components", "deepsea-tools", "prisma", "tailwind", "zod", "@emotion/css", "stable-hash"] : ["antd", "ahooks", "dayjs", "deepsea-components", "deepsea-tools", "tailwind", "@emotion/css", "react-router-dom", "stable-hash"];
|
|
89
93
|
const { modules } = await inquirer.prompt({
|
|
90
94
|
type: "checkbox",
|
|
91
95
|
name: "modules",
|
|
@@ -116,6 +120,8 @@ async function initProject() {
|
|
|
116
120
|
added.push("@emotion/css");
|
|
117
121
|
if (modules.includes("react-router-dom"))
|
|
118
122
|
added.push("react-router-dom");
|
|
123
|
+
if (modules.includes("stable-hash"))
|
|
124
|
+
added.push("stable-hash");
|
|
119
125
|
await (0, import_addDependency.addDependency)({
|
|
120
126
|
package: added,
|
|
121
127
|
type: "dependencies"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/initProject.ts"],
|
|
4
|
-
"sourcesContent": ["import { ProjectType } from \"@constant/index\"\r\nimport consola from \"consola\"\r\nimport { addAntd } from \"./addAntd\"\r\nimport { addDependency } from \"./addDependency\"\r\nimport { addGitignore } from \"./addGitignore\"\r\nimport { addPrettier } from \"./addPrettier\"\r\nimport { addPrisma } from \"./addPrisma\"\r\nimport { tailwind } from \"./tailwind\"\r\nimport { createBrowserlistrc } from \"./createBrowserlistrc\"\r\nimport { getPackageManager } from \"./getPackageManager\"\r\nimport { installDependceny } from \"./installDependceny\"\r\nimport { next } from \"./next\"\r\nimport { readPackageJson } from \"./readPackageJson\"\r\nimport { removeESLint } from \"./removeESLint\"\r\nimport { rsbuild } from \"./rsbuild\"\r\nimport { setTsConfig } from \"./setTsConfig\"\r\nimport { vite } from \"./vite\"\r\n\r\nexport async function initProject() {\r\n consola.start(\"开始初始化项目\")\r\n const { default: inquirer } = await import(\"inquirer\")\r\n await createBrowserlistrc()\r\n const packageJson = await readPackageJson()\r\n const allDependcies = Object.keys(packageJson.dependencies || {}).concat(Object.keys(packageJson.devDependencies || {}))\r\n if (!allDependcies.includes(\"react\") || !allDependcies.includes(\"react-dom\")) {\r\n consola.error(\"仅支持 React 项目\")\r\n return\r\n }\r\n let type: ProjectType\r\n if (allDependcies.some(item => item === \"next\")) {\r\n type = ProjectType.next\r\n } else if (allDependcies.some(item => item === \"@remix-run/react\")) {\r\n type = ProjectType.remix\r\n } else if (allDependcies.some(item => item === \"vite\")) {\r\n type = ProjectType.vite\r\n } else if (allDependcies.some(item => item === \"@rsbuild/core\")) {\r\n type = ProjectType.rsbuild\r\n } else {\r\n consola.error(\"仅支持 Next、Remix、Vite、Rsbuild 项目\")\r\n return\r\n }\r\n await addGitignore()\r\n const manager = await getPackageManager()\r\n if (allDependcies.some(item => item.includes(\"eslint\"))) {\r\n const { removeEslintConfig } = await inquirer.prompt({\r\n type: \"confirm\",\r\n name: \"removeEslintConfig\",\r\n message: \"是否删除 ESLint 配置文件\",\r\n default: true\r\n })\r\n if (removeEslintConfig) await removeESLint()\r\n }\r\n const isFullStack = type === ProjectType.next || type === ProjectType.remix\r\n const choices = isFullStack ? [\"antd\", \"ahooks\", \"dayjs\", \"deepsea-components\", \"deepsea-tools\", \"prisma\", \"tailwind\", \"zod\", \"@emotion/css\"] : [\"antd\", \"ahooks\", \"dayjs\", \"deepsea-components\", \"deepsea-tools\", \"tailwind\", \"@emotion/css\", \"react-router-dom\"]\r\n\r\n const { modules } = await inquirer.prompt({\r\n type: \"checkbox\",\r\n name: \"modules\",\r\n message: \"请选择要添加的模块\",\r\n choices,\r\n default: choices\r\n })\r\n\r\n const added: string[] = []\r\n if (modules.includes(\"antd\")) await addAntd()\r\n if (modules.includes(\"tailwind\")) await tailwind()\r\n else await addPrettier()\r\n if (modules.includes(\"ahooks\")) added.push(\"ahooks\")\r\n if (modules.includes(\"dayjs\")) added.push(\"dayjs\")\r\n if (modules.includes(\"deepsea-components\")) added.push(\"deepsea-components\")\r\n if (modules.includes(\"deepsea-tools\")) added.push(\"deepsea-tools\")\r\n if (modules.includes(\"stable-hash\")) added.push(\"stable-hash\")\r\n if (modules.includes(\"zod\")) added.push(\"zod\")\r\n if (modules.includes(\"@emotion/css\")) added.push(\"@emotion/css\")\r\n if (modules.includes(\"react-router-dom\")) added.push(\"react-router-dom\")\r\n\r\n await addDependency({\r\n package: added,\r\n type: \"dependencies\"\r\n })\r\n\r\n switch (type) {\r\n case ProjectType.next:\r\n await next()\r\n break\r\n\r\n case ProjectType.remix:\r\n await vite()\r\n break\r\n\r\n case ProjectType.vite:\r\n await vite()\r\n break\r\n\r\n case ProjectType.rsbuild:\r\n await rsbuild()\r\n break\r\n }\r\n\r\n let installed = false\r\n if (modules.includes(\"prisma\")) {\r\n await addPrisma(manager)\r\n installed = true\r\n }\r\n if (!installed) await installDependceny({ silent: true, manager })\r\n await setTsConfig(\"noEmit\", true)\r\n consola.success(\"项目初始化完成\")\r\n}\r\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA4B;AAC5B,qBAAoB;AACpB,qBAAwB;AACxB,2BAA8B;AAC9B,0BAA6B;AAC7B,yBAA4B;AAC5B,uBAA0B;AAC1B,sBAAyB;AACzB,iCAAoC;AACpC,+BAAkC;AAClC,+BAAkC;AAClC,kBAAqB;AACrB,6BAAgC;AAChC,0BAA6B;AAC7B,qBAAwB;AACxB,yBAA4B;AAC5B,kBAAqB;AAErB,eAAsB,cAAc;AAChC,iBAAAA,QAAQ,MAAM,SAAS;AACvB,QAAM,EAAE,SAAS,SAAS,IAAI,MAAM,OAAO,UAAU;AACrD,YAAM,gDAAoB;AAC1B,QAAM,cAAc,UAAM,wCAAgB;AAC1C,QAAM,gBAAgB,OAAO,KAAK,YAAY,gBAAgB,CAAC,CAAC,EAAE,OAAO,OAAO,KAAK,YAAY,mBAAmB,CAAC,CAAC,CAAC;AACvH,MAAI,CAAC,cAAc,SAAS,OAAO,KAAK,CAAC,cAAc,SAAS,WAAW,GAAG;AAC1E,mBAAAA,QAAQ,MAAM,cAAc;AAC5B;AAAA,EACJ;AACA,MAAI;AACJ,MAAI,cAAc,KAAK,UAAQ,SAAS,MAAM,GAAG;AAC7C,WAAO,4BAAY;AAAA,EACvB,WAAW,cAAc,KAAK,UAAQ,SAAS,kBAAkB,GAAG;AAChE,WAAO,4BAAY;AAAA,EACvB,WAAW,cAAc,KAAK,UAAQ,SAAS,MAAM,GAAG;AACpD,WAAO,4BAAY;AAAA,EACvB,WAAW,cAAc,KAAK,UAAQ,SAAS,eAAe,GAAG;AAC7D,WAAO,4BAAY;AAAA,EACvB,OAAO;AACH,mBAAAA,QAAQ,MAAM,gCAAgC;AAC9C;AAAA,EACJ;AACA,YAAM,kCAAa;AACnB,QAAM,UAAU,UAAM,4CAAkB;AACxC,MAAI,cAAc,KAAK,UAAQ,KAAK,SAAS,QAAQ,CAAC,GAAG;AACrD,UAAM,EAAE,mBAAmB,IAAI,MAAM,SAAS,OAAO;AAAA,MACjD,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,IACb,CAAC;AACD,QAAI;AAAoB,gBAAM,kCAAa;AAAA,EAC/C;AACA,QAAM,cAAc,SAAS,4BAAY,QAAQ,SAAS,4BAAY;AACtE,QAAM,UAAU,cAAc,CAAC,QAAQ,UAAU,SAAS,sBAAsB,iBAAiB,UAAU,YAAY,OAAO,
|
|
4
|
+
"sourcesContent": ["import { ProjectType } from \"@constant/index\"\r\nimport consola from \"consola\"\r\nimport { addAntd } from \"./addAntd\"\r\nimport { addDependency } from \"./addDependency\"\r\nimport { addGitignore } from \"./addGitignore\"\r\nimport { addPrettier } from \"./addPrettier\"\r\nimport { addPrisma } from \"./addPrisma\"\r\nimport { tailwind } from \"./tailwind\"\r\nimport { createBrowserlistrc } from \"./createBrowserlistrc\"\r\nimport { getPackageManager } from \"./getPackageManager\"\r\nimport { installDependceny } from \"./installDependceny\"\r\nimport { next } from \"./next\"\r\nimport { readPackageJson } from \"./readPackageJson\"\r\nimport { removeESLint } from \"./removeESLint\"\r\nimport { rsbuild } from \"./rsbuild\"\r\nimport { setTsConfig } from \"./setTsConfig\"\r\nimport { vite } from \"./vite\"\r\n\r\nexport async function initProject() {\r\n consola.start(\"开始初始化项目\")\r\n const { default: inquirer } = await import(\"inquirer\")\r\n await createBrowserlistrc()\r\n const packageJson = await readPackageJson()\r\n const allDependcies = Object.keys(packageJson.dependencies || {}).concat(Object.keys(packageJson.devDependencies || {}))\r\n if (!allDependcies.includes(\"react\") || !allDependcies.includes(\"react-dom\")) {\r\n consola.error(\"仅支持 React 项目\")\r\n return\r\n }\r\n addDependency({\r\n package: [\"@types/node\"],\r\n type: \"devDependencies\"\r\n })\r\n let type: ProjectType\r\n if (allDependcies.some(item => item === \"next\")) {\r\n type = ProjectType.next\r\n } else if (allDependcies.some(item => item === \"@remix-run/react\")) {\r\n type = ProjectType.remix\r\n } else if (allDependcies.some(item => item === \"vite\")) {\r\n type = ProjectType.vite\r\n } else if (allDependcies.some(item => item === \"@rsbuild/core\")) {\r\n type = ProjectType.rsbuild\r\n } else {\r\n consola.error(\"仅支持 Next、Remix、Vite、Rsbuild 项目\")\r\n return\r\n }\r\n await addGitignore()\r\n const manager = await getPackageManager()\r\n if (allDependcies.some(item => item.includes(\"eslint\"))) {\r\n const { removeEslintConfig } = await inquirer.prompt({\r\n type: \"confirm\",\r\n name: \"removeEslintConfig\",\r\n message: \"是否删除 ESLint 配置文件\",\r\n default: true\r\n })\r\n if (removeEslintConfig) await removeESLint()\r\n }\r\n const isFullStack = type === ProjectType.next || type === ProjectType.remix\r\n const choices = isFullStack ? [\"antd\", \"ahooks\", \"dayjs\", \"deepsea-components\", \"deepsea-tools\", \"prisma\", \"tailwind\", \"zod\", \"@emotion/css\", \"stable-hash\"] : [\"antd\", \"ahooks\", \"dayjs\", \"deepsea-components\", \"deepsea-tools\", \"tailwind\", \"@emotion/css\", \"react-router-dom\", \"stable-hash\"]\r\n\r\n const { modules } = await inquirer.prompt({\r\n type: \"checkbox\",\r\n name: \"modules\",\r\n message: \"请选择要添加的模块\",\r\n choices,\r\n default: choices\r\n })\r\n\r\n const added: string[] = []\r\n if (modules.includes(\"antd\")) await addAntd()\r\n if (modules.includes(\"tailwind\")) await tailwind()\r\n else await addPrettier()\r\n if (modules.includes(\"ahooks\")) added.push(\"ahooks\")\r\n if (modules.includes(\"dayjs\")) added.push(\"dayjs\")\r\n if (modules.includes(\"deepsea-components\")) added.push(\"deepsea-components\")\r\n if (modules.includes(\"deepsea-tools\")) added.push(\"deepsea-tools\")\r\n if (modules.includes(\"stable-hash\")) added.push(\"stable-hash\")\r\n if (modules.includes(\"zod\")) added.push(\"zod\")\r\n if (modules.includes(\"@emotion/css\")) added.push(\"@emotion/css\")\r\n if (modules.includes(\"react-router-dom\")) added.push(\"react-router-dom\")\r\n if (modules.includes(\"stable-hash\")) added.push(\"stable-hash\")\r\n\r\n await addDependency({\r\n package: added,\r\n type: \"dependencies\"\r\n })\r\n\r\n switch (type) {\r\n case ProjectType.next:\r\n await next()\r\n break\r\n\r\n case ProjectType.remix:\r\n await vite()\r\n break\r\n\r\n case ProjectType.vite:\r\n await vite()\r\n break\r\n\r\n case ProjectType.rsbuild:\r\n await rsbuild()\r\n break\r\n }\r\n\r\n let installed = false\r\n if (modules.includes(\"prisma\")) {\r\n await addPrisma(manager)\r\n installed = true\r\n }\r\n if (!installed) await installDependceny({ silent: true, manager })\r\n await setTsConfig(\"noEmit\", true)\r\n consola.success(\"项目初始化完成\")\r\n}\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["consola"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const rsbuildConfig = "import { defineConfig } from \"@rsbuild/core\"\nimport { pluginReact } from \"@rsbuild/plugin-react\"\nimport { pluginSvgr } from \"@rsbuild/plugin-svgr\"\nimport { checkPort } from \"get-port-please\"\n\nasync function getPort(start = 5173): Promise<number> {\n if (await checkPort(start)) return start\n return await getPort(start + 1)\n}\n\nexport default defineConfig(async ({ env, command, envMode }) => {\n const port = await getPort()\n\n return {\n html: {\n template: \"public/index.html\"\n },\n plugins: [\n pluginReact(),\n pluginSvgr({\n svgrOptions: {\n exportType: \"default\"\n }\n })\n ],\n server: {\n port\n }\n }\n})\n";
|
|
1
|
+
export declare const rsbuildConfig = "import { defineConfig, RsbuildConfig } from \"@rsbuild/core\"\nimport { pluginReact } from \"@rsbuild/plugin-react\"\nimport { pluginSvgr } from \"@rsbuild/plugin-svgr\"\nimport { checkPort } from \"get-port-please\"\n\nasync function getPort(start = 5173): Promise<number> {\n if (await checkPort(start)) return start\n return await getPort(start + 1)\n}\n\nexport default defineConfig(async ({ env, command, envMode }) => {\n const port = await getPort()\n\n return {\n html: {\n template: \"public/index.html\"\n },\n plugins: [\n pluginReact(),\n pluginSvgr({\n svgrOptions: {\n exportType: \"default\"\n }\n })\n ],\n server: {\n port\n },\n output: {\n polyfill: \"usage\"\n }\n } satisfies RsbuildConfig\n})\n";
|
|
2
2
|
export declare function writeRsbuildConfig(): Promise<void>;
|
|
@@ -24,7 +24,7 @@ __export(writeRsbuildConfig_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(writeRsbuildConfig_exports);
|
|
26
26
|
var import_promises = require("fs/promises");
|
|
27
|
-
var rsbuildConfig = `import { defineConfig } from "@rsbuild/core"
|
|
27
|
+
var rsbuildConfig = `import { defineConfig, RsbuildConfig } from "@rsbuild/core"
|
|
28
28
|
import { pluginReact } from "@rsbuild/plugin-react"
|
|
29
29
|
import { pluginSvgr } from "@rsbuild/plugin-svgr"
|
|
30
30
|
import { checkPort } from "get-port-please"
|
|
@@ -51,8 +51,11 @@ export default defineConfig(async ({ env, command, envMode }) => {
|
|
|
51
51
|
],
|
|
52
52
|
server: {
|
|
53
53
|
port
|
|
54
|
+
},
|
|
55
|
+
output: {
|
|
56
|
+
polyfill: "usage"
|
|
54
57
|
}
|
|
55
|
-
}
|
|
58
|
+
} satisfies RsbuildConfig
|
|
56
59
|
})
|
|
57
60
|
`;
|
|
58
61
|
async function writeRsbuildConfig() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/writeRsbuildConfig.ts"],
|
|
4
|
-
"sourcesContent": ["import { writeFile } from \"fs/promises\"\r\n\r\nexport const rsbuildConfig = `import { defineConfig } from \"@rsbuild/core\"\r\nimport { pluginReact } from \"@rsbuild/plugin-react\"\r\nimport { pluginSvgr } from \"@rsbuild/plugin-svgr\"\r\nimport { checkPort } from \"get-port-please\"\r\n\r\nasync function getPort(start = 5173): Promise<number> {\r\n if (await checkPort(start)) return start\r\n return await getPort(start + 1)\r\n}\r\n\r\nexport default defineConfig(async ({ env, command, envMode }) => {\r\n const port = await getPort()\r\n\r\n return {\r\n html: {\r\n template: \"public/index.html\"\r\n },\r\n plugins: [\r\n pluginReact(),\r\n pluginSvgr({\r\n svgrOptions: {\r\n exportType: \"default\"\r\n }\r\n })\r\n ],\r\n server: {\r\n port\r\n }\r\n }\r\n})\r\n`\r\n\r\nexport async function writeRsbuildConfig() {\r\n await writeFile(\"rsbuild.config.ts\", rsbuildConfig, \"utf-8\")\r\n}\r\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA0B;AAEnB,IAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import { writeFile } from \"fs/promises\"\r\n\r\nexport const rsbuildConfig = `import { defineConfig, RsbuildConfig } from \"@rsbuild/core\"\r\nimport { pluginReact } from \"@rsbuild/plugin-react\"\r\nimport { pluginSvgr } from \"@rsbuild/plugin-svgr\"\r\nimport { checkPort } from \"get-port-please\"\r\n\r\nasync function getPort(start = 5173): Promise<number> {\r\n if (await checkPort(start)) return start\r\n return await getPort(start + 1)\r\n}\r\n\r\nexport default defineConfig(async ({ env, command, envMode }) => {\r\n const port = await getPort()\r\n\r\n return {\r\n html: {\r\n template: \"public/index.html\"\r\n },\r\n plugins: [\r\n pluginReact(),\r\n pluginSvgr({\r\n svgrOptions: {\r\n exportType: \"default\"\r\n }\r\n })\r\n ],\r\n server: {\r\n port\r\n },\r\n output: {\r\n polyfill: \"usage\"\r\n }\r\n } satisfies RsbuildConfig\r\n})\r\n`\r\n\r\nexport async function writeRsbuildConfig() {\r\n await writeFile(\"rsbuild.config.ts\", rsbuildConfig, \"utf-8\")\r\n}\r\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA0B;AAEnB,IAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmC7B,eAAsB,qBAAqB;AACvC,YAAM,2BAAU,qBAAqB,eAAe,OAAO;AAC/D;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
package/src/utils/initProject.ts
CHANGED
|
@@ -26,6 +26,10 @@ export async function initProject() {
|
|
|
26
26
|
consola.error("仅支持 React 项目")
|
|
27
27
|
return
|
|
28
28
|
}
|
|
29
|
+
addDependency({
|
|
30
|
+
package: ["@types/node"],
|
|
31
|
+
type: "devDependencies"
|
|
32
|
+
})
|
|
29
33
|
let type: ProjectType
|
|
30
34
|
if (allDependcies.some(item => item === "next")) {
|
|
31
35
|
type = ProjectType.next
|
|
@@ -51,7 +55,7 @@ export async function initProject() {
|
|
|
51
55
|
if (removeEslintConfig) await removeESLint()
|
|
52
56
|
}
|
|
53
57
|
const isFullStack = type === ProjectType.next || type === ProjectType.remix
|
|
54
|
-
const choices = isFullStack ? ["antd", "ahooks", "dayjs", "deepsea-components", "deepsea-tools", "prisma", "tailwind", "zod", "@emotion/css"] : ["antd", "ahooks", "dayjs", "deepsea-components", "deepsea-tools", "tailwind", "@emotion/css", "react-router-dom"]
|
|
58
|
+
const choices = isFullStack ? ["antd", "ahooks", "dayjs", "deepsea-components", "deepsea-tools", "prisma", "tailwind", "zod", "@emotion/css", "stable-hash"] : ["antd", "ahooks", "dayjs", "deepsea-components", "deepsea-tools", "tailwind", "@emotion/css", "react-router-dom", "stable-hash"]
|
|
55
59
|
|
|
56
60
|
const { modules } = await inquirer.prompt({
|
|
57
61
|
type: "checkbox",
|
|
@@ -73,6 +77,7 @@ export async function initProject() {
|
|
|
73
77
|
if (modules.includes("zod")) added.push("zod")
|
|
74
78
|
if (modules.includes("@emotion/css")) added.push("@emotion/css")
|
|
75
79
|
if (modules.includes("react-router-dom")) added.push("react-router-dom")
|
|
80
|
+
if (modules.includes("stable-hash")) added.push("stable-hash")
|
|
76
81
|
|
|
77
82
|
await addDependency({
|
|
78
83
|
package: added,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { writeFile } from "fs/promises"
|
|
2
2
|
|
|
3
|
-
export const rsbuildConfig = `import { defineConfig } from "@rsbuild/core"
|
|
3
|
+
export const rsbuildConfig = `import { defineConfig, RsbuildConfig } from "@rsbuild/core"
|
|
4
4
|
import { pluginReact } from "@rsbuild/plugin-react"
|
|
5
5
|
import { pluginSvgr } from "@rsbuild/plugin-svgr"
|
|
6
6
|
import { checkPort } from "get-port-please"
|
|
@@ -27,8 +27,11 @@ export default defineConfig(async ({ env, command, envMode }) => {
|
|
|
27
27
|
],
|
|
28
28
|
server: {
|
|
29
29
|
port
|
|
30
|
+
},
|
|
31
|
+
output: {
|
|
32
|
+
polyfill: "usage"
|
|
30
33
|
}
|
|
31
|
-
}
|
|
34
|
+
} satisfies RsbuildConfig
|
|
32
35
|
})
|
|
33
36
|
`
|
|
34
37
|
|