@moluoxixi/create-app 2.0.403 → 2.0.406
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/commands/create.js +0 -1
- package/dist/generators/react.js +0 -2
- package/dist/generators/vue.js +0 -2
- package/dist/test.js +8 -0
- package/dist/utils/deepMerge.js +1 -1
- package/dist/utils/featureMapping.d.ts +2 -2
- package/dist/utils/featureMapping.js +3 -5
- package/dist/utils/generateFrameworkProject.d.ts +0 -4
- package/dist/utils/generateFrameworkProject.js +1 -1
- package/dist/utils/install.js +1 -1
- package/dist/utils/prompts.js +5 -30
- package/dist/utils/renderTemplate.js +9 -4
- package/package.json +2 -1
- package/templates/common/base/.gitmodules +4 -0
- package/templates/common/base/package.json +3 -1
- package/templates/common/base/scripts/build.mts +17 -17
- package/templates/common/base/src/apis/index.ts +3 -4
- package/templates/common/base/src/apis/types/example.ts +0 -1
- package/templates/common/base/src/assets/fonts/index.css +0 -1
- package/templates/common/base/src/assets/styles/base.scss +1 -9
- package/templates/common/base/src/assets/styles/custom.scss +0 -1
- package/templates/common/base/src/assets/styles/tailwind.scss +0 -1
- package/templates/common/base/src/constants/index.ts +3 -4
- package/templates/common/base/src/utils/index.ts +22 -23
- package/templates/common/base/vite.config.ts.ejs +16 -1
- package/templates/common/features/husky/.husky/install.mjs +3 -0
- package/templates/common/features/husky/package.json +2 -1
- package/templates/react/base/index.html +1 -2
- package/templates/react/base/node_modules/.bin/browserslist +17 -0
- package/templates/react/base/node_modules/.bin/browserslist.CMD +12 -0
- package/templates/react/base/node_modules/.bin/browserslist.ps1 +41 -0
- package/templates/react/base/node_modules/.bin/jiti +17 -0
- package/templates/react/base/node_modules/.bin/jiti.CMD +12 -0
- package/templates/react/base/node_modules/.bin/jiti.ps1 +41 -0
- package/templates/react/base/node_modules/.bin/parser +17 -0
- package/templates/react/base/node_modules/.bin/parser.CMD +12 -0
- package/templates/react/base/node_modules/.bin/parser.ps1 +41 -0
- package/templates/react/base/node_modules/.bin/rollup +17 -0
- package/templates/react/base/node_modules/.bin/rollup.CMD +12 -0
- package/templates/react/base/node_modules/.bin/rollup.ps1 +41 -0
- package/templates/react/base/node_modules/.bin/sass +17 -0
- package/templates/react/base/node_modules/.bin/sass.CMD +12 -0
- package/templates/react/base/node_modules/.bin/sass.ps1 +41 -0
- package/templates/react/base/node_modules/.bin/terser +17 -0
- package/templates/react/base/node_modules/.bin/terser.CMD +12 -0
- package/templates/react/base/node_modules/.bin/terser.ps1 +41 -0
- package/templates/react/base/node_modules/.bin/tsc +17 -0
- package/templates/react/base/node_modules/.bin/tsc.CMD +12 -0
- package/templates/react/base/node_modules/.bin/tsc.ps1 +41 -0
- package/templates/react/base/node_modules/.bin/tsserver +17 -0
- package/templates/react/base/node_modules/.bin/tsserver.CMD +12 -0
- package/templates/react/base/node_modules/.bin/tsserver.ps1 +41 -0
- package/templates/react/base/node_modules/.bin/tsx +17 -0
- package/templates/react/base/node_modules/.bin/tsx.CMD +12 -0
- package/templates/react/base/node_modules/.bin/tsx.ps1 +41 -0
- package/templates/react/base/node_modules/.bin/vite +2 -2
- package/templates/react/base/node_modules/.bin/vite.CMD +2 -2
- package/templates/react/base/node_modules/.bin/vite.ps1 +4 -4
- package/templates/react/base/node_modules/.bin/yaml +17 -0
- package/templates/react/base/node_modules/.bin/yaml.CMD +12 -0
- package/templates/react/base/node_modules/.bin/yaml.ps1 +41 -0
- package/templates/react/base/package.json +4 -3
- package/templates/react/base/src/main.tsx.ejs +0 -1
- package/templates/react/{features/qiankun → base}/src/qiankun/index.ts +5 -2
- package/templates/react/base/src/stores/index.ts +5 -0
- package/templates/react/base/src/stores/user.ts +55 -0
- package/templates/react/base/tsconfig.app.json +0 -1
- package/templates/react/base/tsconfig.base.json +0 -1
- package/templates/react/base/tsconfig.json +0 -1
- package/templates/react/base/tsconfig.node.json +0 -1
- package/templates/react/features/eslint/eslint.config.ts +0 -1
- package/templates/react/features/eslint/node_modules/.bin/browserslist +17 -0
- package/templates/react/features/eslint/node_modules/.bin/browserslist.CMD +12 -0
- package/templates/react/features/eslint/node_modules/.bin/browserslist.ps1 +41 -0
- package/templates/react/features/eslint/node_modules/.bin/jiti +17 -0
- package/templates/react/features/eslint/node_modules/.bin/jiti.CMD +12 -0
- package/templates/react/features/eslint/node_modules/.bin/jiti.ps1 +41 -0
- package/templates/react/features/eslint/node_modules/.bin/tsc +17 -0
- package/templates/react/features/eslint/node_modules/.bin/tsc.CMD +12 -0
- package/templates/react/features/eslint/node_modules/.bin/tsc.ps1 +41 -0
- package/templates/react/features/eslint/node_modules/.bin/tsserver +17 -0
- package/templates/react/features/eslint/node_modules/.bin/tsserver.CMD +12 -0
- package/templates/react/features/eslint/node_modules/.bin/tsserver.ps1 +41 -0
- package/templates/react/features/i18n/node_modules/.bin/tsc +17 -0
- package/templates/react/features/i18n/node_modules/.bin/tsc.CMD +12 -0
- package/templates/react/features/i18n/node_modules/.bin/tsc.ps1 +41 -0
- package/templates/react/features/i18n/node_modules/.bin/tsserver +17 -0
- package/templates/react/features/i18n/node_modules/.bin/tsserver.CMD +12 -0
- package/templates/react/features/i18n/node_modules/.bin/tsserver.ps1 +41 -0
- package/templates/react/features/i18n/src/locales/index.ts +0 -1
- package/templates/react/features/i18n/src/locales/lang/en.ts +1 -2
- package/templates/react/features/i18n/src/locales/lang/es.ts +1 -2
- package/templates/react/features/i18n/src/locales/lang/zh.ts +1 -2
- package/templates/react/{base/src/router/index.tsx.ejs → features/manualRoutes/src/router/index.tsx} +6 -5
- package/templates/react/features/manualRoutes/src/router/routes.tsx +4 -3
- package/templates/react/features/pageRoutes/node_modules/.bin/jiti +17 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/jiti.CMD +12 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/jiti.ps1 +41 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/sass +17 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/sass.CMD +12 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/sass.ps1 +41 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/terser +17 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/terser.CMD +12 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/terser.ps1 +41 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/tsx +17 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/tsx.CMD +12 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/tsx.ps1 +41 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/vite +17 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/vite.CMD +12 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/vite.ps1 +41 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/yaml +17 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/yaml.CMD +12 -0
- package/templates/react/features/pageRoutes/node_modules/.bin/yaml.ps1 +41 -0
- package/templates/react/features/pageRoutes/src/router/index.tsx +30 -0
- package/templates/react/features/sentry/src/utils/sentry.ts +0 -1
- package/templates/react/features/zustand/src/types/stores.ts +0 -1
- package/templates/vue/base/env.d.ts +11 -12
- package/templates/vue/base/index.html +1 -2
- package/templates/vue/base/node_modules/.bin/browserslist +17 -0
- package/templates/vue/base/node_modules/.bin/browserslist.CMD +12 -0
- package/templates/vue/base/node_modules/.bin/browserslist.ps1 +41 -0
- package/templates/vue/base/node_modules/.bin/jiti +17 -0
- package/templates/vue/base/node_modules/.bin/jiti.CMD +12 -0
- package/templates/vue/base/node_modules/.bin/jiti.ps1 +41 -0
- package/templates/vue/base/node_modules/.bin/parser +17 -0
- package/templates/vue/base/node_modules/.bin/parser.CMD +12 -0
- package/templates/vue/base/node_modules/.bin/parser.ps1 +41 -0
- package/templates/vue/base/node_modules/.bin/rollup +17 -0
- package/templates/vue/base/node_modules/.bin/rollup.CMD +12 -0
- package/templates/vue/base/node_modules/.bin/rollup.ps1 +41 -0
- package/templates/vue/base/node_modules/.bin/sass +17 -0
- package/templates/vue/base/node_modules/.bin/sass.CMD +12 -0
- package/templates/vue/base/node_modules/.bin/sass.ps1 +41 -0
- package/templates/vue/base/node_modules/.bin/terser +17 -0
- package/templates/vue/base/node_modules/.bin/terser.CMD +12 -0
- package/templates/vue/base/node_modules/.bin/terser.ps1 +41 -0
- package/templates/vue/base/node_modules/.bin/tsc +17 -0
- package/templates/vue/base/node_modules/.bin/tsc.CMD +12 -0
- package/templates/vue/base/node_modules/.bin/tsc.ps1 +41 -0
- package/templates/vue/base/node_modules/.bin/tsserver +17 -0
- package/templates/vue/base/node_modules/.bin/tsserver.CMD +12 -0
- package/templates/vue/base/node_modules/.bin/tsserver.ps1 +41 -0
- package/templates/vue/base/node_modules/.bin/tsx +17 -0
- package/templates/vue/base/node_modules/.bin/tsx.CMD +12 -0
- package/templates/vue/base/node_modules/.bin/tsx.ps1 +41 -0
- package/templates/vue/base/node_modules/.bin/vite +2 -2
- package/templates/vue/base/node_modules/.bin/vite.CMD +2 -2
- package/templates/vue/base/node_modules/.bin/vite.ps1 +4 -4
- package/templates/vue/base/node_modules/.bin/yaml +17 -0
- package/templates/vue/base/node_modules/.bin/yaml.CMD +12 -0
- package/templates/vue/base/node_modules/.bin/yaml.ps1 +41 -0
- package/templates/vue/base/package.json +6 -3
- package/templates/vue/base/src/App.vue +5 -5
- package/templates/vue/base/src/assets/styles/base.scss +69 -0
- package/templates/vue/base/src/assets/styles/custom.scss +40 -0
- package/templates/vue/base/src/assets/styles/main.scss +0 -1
- package/templates/vue/base/src/assets/styles/tailwind.scss +3 -0
- package/templates/vue/base/src/directives/index.ts +9 -9
- package/templates/vue/base/src/layouts/index.ts +21 -0
- package/templates/vue/base/src/main.ts.ejs +1 -1
- package/templates/vue/base/src/pages/about/index.vue +6 -7
- package/templates/vue/base/src/pages/home/index.vue +6 -7
- package/templates/vue/base/src/router/layout.vue +15 -0
- package/templates/vue/base/src/stores/index.ts +6 -0
- package/templates/vue/base/src/stores/modules/system.ts +51 -0
- package/templates/vue/base/src/stores/modules/user.ts +41 -0
- package/templates/vue/base/src/utils/index.ts +5 -0
- package/templates/vue/base/src/utils/modifyComponent.tsx +43 -0
- package/templates/vue/base/tsconfig.app.json +25 -17
- package/templates/vue/base/tsconfig.base.json +29 -23
- package/templates/vue/base/tsconfig.json +11 -12
- package/templates/vue/base/tsconfig.node.json +14 -15
- package/templates/vue/features/ant-design-vue/node_modules/.bin/tsc +17 -0
- package/templates/vue/features/ant-design-vue/node_modules/.bin/tsc.CMD +12 -0
- package/templates/vue/features/ant-design-vue/node_modules/.bin/tsc.ps1 +41 -0
- package/templates/vue/features/ant-design-vue/node_modules/.bin/tsserver +17 -0
- package/templates/vue/features/ant-design-vue/node_modules/.bin/tsserver.CMD +12 -0
- package/templates/vue/features/ant-design-vue/node_modules/.bin/tsserver.ps1 +41 -0
- package/templates/vue/features/ant-design-vue/src/layouts/AntDesign.vue +13 -14
- package/templates/vue/features/element-plus/node_modules/.bin/tsc +17 -0
- package/templates/vue/features/element-plus/node_modules/.bin/tsc.CMD +12 -0
- package/templates/vue/features/element-plus/node_modules/.bin/tsc.ps1 +41 -0
- package/templates/vue/features/element-plus/node_modules/.bin/tsserver +17 -0
- package/templates/vue/features/element-plus/node_modules/.bin/tsserver.CMD +12 -0
- package/templates/vue/features/element-plus/node_modules/.bin/tsserver.ps1 +41 -0
- package/templates/vue/features/element-plus/src/assets/styles/element/fixQiankun.scss +10 -0
- package/templates/vue/features/element-plus/src/assets/styles/element/index.scss +4 -2
- package/templates/vue/features/element-plus/src/components/SubMenu/index.ts +0 -1
- package/templates/vue/features/element-plus/src/components/SubMenu/src/_types/index.ts +1 -6
- package/templates/vue/features/element-plus/src/components/SubMenu/src/_types/props.ts +16 -11
- package/templates/vue/features/element-plus/src/components/SubMenu/src/index.vue +60 -24
- package/templates/vue/features/element-plus/src/layouts/element.vue +108 -69
- package/templates/vue/features/eslint/eslint.config.ts +0 -1
- package/templates/vue/features/eslint/node_modules/.bin/browserslist +17 -0
- package/templates/vue/features/eslint/node_modules/.bin/browserslist.CMD +12 -0
- package/templates/vue/features/eslint/node_modules/.bin/browserslist.ps1 +41 -0
- package/templates/vue/features/eslint/node_modules/.bin/jiti +17 -0
- package/templates/vue/features/eslint/node_modules/.bin/jiti.CMD +12 -0
- package/templates/vue/features/eslint/node_modules/.bin/jiti.ps1 +41 -0
- package/templates/vue/features/eslint/node_modules/.bin/tsc +17 -0
- package/templates/vue/features/eslint/node_modules/.bin/tsc.CMD +12 -0
- package/templates/vue/features/eslint/node_modules/.bin/tsc.ps1 +41 -0
- package/templates/vue/features/eslint/node_modules/.bin/tsserver +17 -0
- package/templates/vue/features/eslint/node_modules/.bin/tsserver.CMD +12 -0
- package/templates/vue/features/eslint/node_modules/.bin/tsserver.ps1 +41 -0
- package/templates/vue/features/i18n/node_modules/.bin/tsc +17 -0
- package/templates/vue/features/i18n/node_modules/.bin/tsc.CMD +12 -0
- package/templates/vue/features/i18n/node_modules/.bin/tsc.ps1 +41 -0
- package/templates/vue/features/i18n/node_modules/.bin/tsserver +17 -0
- package/templates/vue/features/i18n/node_modules/.bin/tsserver.CMD +12 -0
- package/templates/vue/features/i18n/node_modules/.bin/tsserver.ps1 +41 -0
- package/templates/vue/features/i18n/src/locales/lang/en.ts +1 -2
- package/templates/vue/features/i18n/src/locales/lang/es.ts +1 -2
- package/templates/vue/features/i18n/src/locales/lang/zh.ts +1 -2
- package/templates/vue/features/manualRoutes/node_modules/.bin/jiti +17 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/jiti.CMD +12 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/jiti.ps1 +41 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/sass +17 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/sass.CMD +12 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/sass.ps1 +41 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/terser +17 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/terser.CMD +12 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/terser.ps1 +41 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/tsc +17 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/tsc.CMD +12 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/tsc.ps1 +41 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/tsserver +17 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/tsserver.CMD +12 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/tsserver.ps1 +41 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/tsx +17 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/tsx.CMD +12 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/tsx.ps1 +41 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/vite +17 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/vite.CMD +12 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/vite.ps1 +41 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/yaml +17 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/yaml.CMD +12 -0
- package/templates/vue/features/manualRoutes/node_modules/.bin/yaml.ps1 +41 -0
- package/templates/vue/features/manualRoutes/package.json +7 -0
- package/templates/vue/features/manualRoutes/src/router/index.ts +45 -0
- package/templates/vue/features/manualRoutes/src/router/layout.vue +12 -7
- package/templates/vue/features/manualRoutes/src/stores/index.ts +6 -0
- package/templates/vue/features/manualRoutes/src/stores/modules/system.ts +51 -0
- package/templates/vue/features/manualRoutes/src/stores/modules/user.ts +41 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/jiti +17 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/jiti.CMD +12 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/jiti.ps1 +41 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/sass +17 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/sass.CMD +12 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/sass.ps1 +41 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/terser +17 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/terser.CMD +12 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/terser.ps1 +41 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/tsc +17 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/tsc.CMD +12 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/tsc.ps1 +41 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/tsserver +17 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/tsserver.CMD +12 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/tsserver.ps1 +41 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/tsx +17 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/tsx.CMD +12 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/tsx.ps1 +41 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/vite +17 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/vite.CMD +12 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/vite.ps1 +41 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/yaml +17 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/yaml.CMD +12 -0
- package/templates/vue/features/pageRoutes/node_modules/.bin/yaml.ps1 +41 -0
- package/templates/vue/features/pageRoutes/package.json +4 -1
- package/templates/vue/features/pageRoutes/src/router/index.ts +46 -0
- package/templates/vue/features/pageRoutes/src/router/layout.vue +15 -0
- package/templates/vue/features/pageRoutes/src/stores/index.ts +6 -0
- package/templates/vue/features/pageRoutes/src/stores/modules/system.ts +51 -0
- package/templates/vue/features/pageRoutes/src/stores/modules/user.ts +41 -0
- package/templates/vue/features/sentry/node_modules/.bin/tsc +17 -0
- package/templates/vue/features/sentry/node_modules/.bin/tsc.CMD +12 -0
- package/templates/vue/features/sentry/node_modules/.bin/tsc.ps1 +41 -0
- package/templates/vue/features/sentry/node_modules/.bin/tsserver +17 -0
- package/templates/vue/features/sentry/node_modules/.bin/tsserver.CMD +12 -0
- package/templates/vue/features/sentry/node_modules/.bin/tsserver.ps1 +41 -0
- package/templates/vue/features/sentry/package.json +3 -1
- package/templates/vue/features/sentry/src/stores/index.ts +13 -0
- package/templates/vue/features/sentry/src/utils/sentry.ts +0 -1
- package/templates/react/features/qiankun/package.json +0 -6
- package/templates/vue/base/src/router/index.ts.ejs +0 -36
- package/templates/vue/features/pinia/package.json +0 -7
- package/templates/vue/features/pinia/src/stores/index.ts +0 -16
- package/templates/vue/features/pinia/src/stores/system.ts +0 -60
- package/templates/vue/features/pinia/src/stores/user.ts +0 -56
- package/templates/vue/features/qiankun/package.json +0 -5
- package/templates/vue/features/qiankun/src/qiankun/index.ts +0 -75
- package/templates/vue/features/router/package.json +0 -5
package/dist/commands/create.js
CHANGED
|
@@ -37,7 +37,6 @@ export async function createProject(projectName) {
|
|
|
37
37
|
console.log(chalk.gray(` UI 组件库: ${chalk.white(config.uiLibrary)}`));
|
|
38
38
|
console.log(chalk.gray(` 路由模式: ${chalk.white(config.routeMode)}`));
|
|
39
39
|
console.log(chalk.gray(` 国际化: ${chalk.white(config.i18n ? '是' : '否')}`));
|
|
40
|
-
console.log(chalk.gray(` 微前端: ${chalk.white(config.qiankun ? '是' : '否')}`));
|
|
41
40
|
console.log(chalk.gray(` 错误监控: ${chalk.white(config.sentry ? '是' : '否')}`));
|
|
42
41
|
console.log(chalk.gray(` 包管理器: ${chalk.white(config.packageManager)}`));
|
|
43
42
|
console.log('');
|
package/dist/generators/react.js
CHANGED
package/dist/generators/vue.js
CHANGED
package/dist/test.js
CHANGED
|
@@ -170,6 +170,7 @@ function createTestConfig(framework, uiLibrary, suffix, overrides) {
|
|
|
170
170
|
/**
|
|
171
171
|
* 生成测试项目
|
|
172
172
|
* @param minimalOnly 是否只生成全量和最小配置
|
|
173
|
+
* @returns Promise<void>
|
|
173
174
|
*/
|
|
174
175
|
async function generateTestProjects(minimalOnly = false) {
|
|
175
176
|
const mode = minimalOnly ? '(仅全量和最小配置)' : '(全部组合)';
|
|
@@ -220,6 +221,8 @@ async function generateTestProjects(minimalOnly = false) {
|
|
|
220
221
|
}
|
|
221
222
|
/**
|
|
222
223
|
* 检查 package.json 中是否有 catalog 引用(应该已经全部替换为实际版本号)
|
|
224
|
+
* @param projectDir 项目目录路径
|
|
225
|
+
* @returns 检查是否通过(true 表示通过,false 表示失败)
|
|
223
226
|
*/
|
|
224
227
|
function checkPackageJsonVersions(projectDir) {
|
|
225
228
|
const packageJsonPath = path.join(projectDir, FILE_CONSTANTS.PACKAGE_JSON);
|
|
@@ -371,6 +374,9 @@ async function showFileTrees() {
|
|
|
371
374
|
}
|
|
372
375
|
/**
|
|
373
376
|
* 打印文件树
|
|
377
|
+
* @param dir 目录路径
|
|
378
|
+
* @param indent 缩进字符串
|
|
379
|
+
* @returns Promise<void>
|
|
374
380
|
*/
|
|
375
381
|
async function printFileTree(dir, indent) {
|
|
376
382
|
const items = fs.readdirSync(dir).sort();
|
|
@@ -390,6 +396,8 @@ async function printFileTree(dir, indent) {
|
|
|
390
396
|
}
|
|
391
397
|
/**
|
|
392
398
|
* 主函数
|
|
399
|
+
* 执行测试项目生成、依赖审计和文件树显示
|
|
400
|
+
* @returns Promise<void>
|
|
393
401
|
*/
|
|
394
402
|
async function main() {
|
|
395
403
|
const { minimalOnly } = parseArgs();
|
package/dist/utils/deepMerge.js
CHANGED
|
@@ -11,10 +11,10 @@ import type { FrameworkType } from '../types/index.ts';
|
|
|
11
11
|
export declare function scanAllFeatures(framework: FrameworkType): string[];
|
|
12
12
|
/**
|
|
13
13
|
* 配置项到 feature 目录的映射(从 renderFeatures 提取)
|
|
14
|
-
* @param
|
|
14
|
+
* @param _framework 框架类型(已不再使用,保留以保持接口兼容性)
|
|
15
15
|
* @returns 配置键到 feature 名称的映射对象
|
|
16
16
|
*/
|
|
17
|
-
export declare function getConfigToFeatureMap(
|
|
17
|
+
export declare function getConfigToFeatureMap(_framework: FrameworkType): Record<string, string>;
|
|
18
18
|
/**
|
|
19
19
|
* 公共 features 映射
|
|
20
20
|
* @returns 公共配置键到 feature 名称的映射对象
|
|
@@ -41,17 +41,15 @@ export function scanAllFeatures(framework) {
|
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* 配置项到 feature 目录的映射(从 renderFeatures 提取)
|
|
44
|
-
* @param
|
|
44
|
+
* @param _framework 框架类型(已不再使用,保留以保持接口兼容性)
|
|
45
45
|
* @returns 配置键到 feature 名称的映射对象
|
|
46
46
|
*/
|
|
47
|
-
export function getConfigToFeatureMap(
|
|
47
|
+
export function getConfigToFeatureMap(_framework) {
|
|
48
48
|
return {
|
|
49
|
-
router
|
|
50
|
-
stateManagement: framework === 'vue' ? 'pinia' : 'zustand',
|
|
49
|
+
// router、stateManagement、qiankun 已内置到 base,不再作为 feature
|
|
51
50
|
eslint: 'eslint',
|
|
52
51
|
i18n: 'i18n',
|
|
53
52
|
sentry: 'sentry',
|
|
54
|
-
qiankun: 'qiankun',
|
|
55
53
|
};
|
|
56
54
|
}
|
|
57
55
|
/**
|
|
@@ -36,7 +36,7 @@ export function generateFrameworkProject(config, ejsConfig) {
|
|
|
36
36
|
};
|
|
37
37
|
const frameworkBasePath = path.join(templatesDir, framework, 'base');
|
|
38
38
|
renderEjsToFile(path.join(frameworkBasePath, ejsConfig.mainTemplate), path.join(targetDir, ejsConfig.mainOutput), ejsData);
|
|
39
|
-
|
|
39
|
+
// Router 已通过 feature 覆盖实现(manualRoutes/pageRoutes),不再使用 EJS
|
|
40
40
|
// 6. 数据驱动生成 vite.config.ts(使用 EJS 模板)
|
|
41
41
|
const viteConfigEjsData = getViteConfigEjsData(config);
|
|
42
42
|
const commonBasePath = path.join(templatesDir, 'common', 'base');
|
package/dist/utils/install.js
CHANGED
package/dist/utils/prompts.js
CHANGED
|
@@ -113,7 +113,7 @@ export async function collectProjectConfig(projectName) {
|
|
|
113
113
|
}
|
|
114
114
|
},
|
|
115
115
|
},
|
|
116
|
-
//
|
|
116
|
+
// 路由模式(路由已内置,只需选择模式)
|
|
117
117
|
{
|
|
118
118
|
type: 'list',
|
|
119
119
|
name: 'routeMode',
|
|
@@ -123,24 +123,6 @@ export async function collectProjectConfig(projectName) {
|
|
|
123
123
|
{ name: '手动配置路由', value: 'manual' },
|
|
124
124
|
],
|
|
125
125
|
},
|
|
126
|
-
// 是否启用路由
|
|
127
|
-
{
|
|
128
|
-
type: 'confirm',
|
|
129
|
-
name: 'router',
|
|
130
|
-
message: '是否启用路由 (vue-router/react-router-dom)?',
|
|
131
|
-
default: true,
|
|
132
|
-
},
|
|
133
|
-
// 是否启用状态管理
|
|
134
|
-
{
|
|
135
|
-
type: 'confirm',
|
|
136
|
-
name: 'stateManagement',
|
|
137
|
-
message: (answers) => {
|
|
138
|
-
return answers.framework === 'vue'
|
|
139
|
-
? '是否启用状态管理 (Pinia)?'
|
|
140
|
-
: '是否启用状态管理 (Zustand)?';
|
|
141
|
-
},
|
|
142
|
-
default: true,
|
|
143
|
-
},
|
|
144
126
|
// 是否启用国际化
|
|
145
127
|
{
|
|
146
128
|
type: 'confirm',
|
|
@@ -148,13 +130,6 @@ export async function collectProjectConfig(projectName) {
|
|
|
148
130
|
message: '是否启用国际化 (i18n)?',
|
|
149
131
|
default: true,
|
|
150
132
|
},
|
|
151
|
-
// 是否启用微前端
|
|
152
|
-
{
|
|
153
|
-
type: 'confirm',
|
|
154
|
-
name: 'qiankun',
|
|
155
|
-
message: '是否启用微前端 (qiankun)?',
|
|
156
|
-
default: false,
|
|
157
|
-
},
|
|
158
133
|
// 是否启用错误监控
|
|
159
134
|
{
|
|
160
135
|
type: 'confirm',
|
|
@@ -196,11 +171,11 @@ export async function collectProjectConfig(projectName) {
|
|
|
196
171
|
author: answers.author,
|
|
197
172
|
framework: answers.framework,
|
|
198
173
|
uiLibrary: answers.uiLibrary,
|
|
199
|
-
routeMode: answers.routeMode,
|
|
200
|
-
router:
|
|
201
|
-
stateManagement:
|
|
174
|
+
routeMode: answers.routeMode || 'manual',
|
|
175
|
+
router: true, // 路由已内置
|
|
176
|
+
stateManagement: true, // 状态管理已内置
|
|
202
177
|
i18n: answers.i18n,
|
|
203
|
-
qiankun:
|
|
178
|
+
qiankun: true, // 微前端已内置
|
|
204
179
|
sentry: answers.sentry,
|
|
205
180
|
eslint: answers.eslint,
|
|
206
181
|
gitHooks: answers.gitHooks,
|
|
@@ -23,13 +23,15 @@ export function renderTemplate(src, dest) {
|
|
|
23
23
|
if (path.basename(src) === FILE_CONSTANTS.NODE_MODULES) {
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
// 统一使用绝对路径,确保目录创建和文件复制使用相同的路径格式
|
|
27
|
+
const resolvedDest = path.resolve(dest);
|
|
28
|
+
fs.mkdirSync(resolvedDest, { recursive: true });
|
|
27
29
|
for (const file of fs.readdirSync(src)) {
|
|
28
30
|
// 验证文件名安全性
|
|
29
31
|
if (file.includes('..') || file.includes('~')) {
|
|
30
32
|
throw new Error(`不安全的文件名: ${file}`);
|
|
31
33
|
}
|
|
32
|
-
renderTemplate(path.resolve(src, file), path.resolve(
|
|
34
|
+
renderTemplate(path.resolve(src, file), path.resolve(resolvedDest, file));
|
|
33
35
|
}
|
|
34
36
|
return;
|
|
35
37
|
}
|
|
@@ -51,6 +53,9 @@ export function renderTemplate(src, dest) {
|
|
|
51
53
|
// 处理特殊文件名转换(如 _gitignore -> .gitignore)
|
|
52
54
|
const targetFilename = renameFile(filename);
|
|
53
55
|
const targetPath = path.resolve(path.dirname(dest), targetFilename);
|
|
56
|
+
// 确保目标文件的父目录存在
|
|
57
|
+
// 虽然目录处理时已创建,但文件名重命名时路径可能不同,需要确保父目录存在
|
|
58
|
+
fs.mkdirSync(path.dirname(targetPath), { recursive: true });
|
|
54
59
|
// 普通文件直接复制(后面的会覆盖前面的)
|
|
55
60
|
fs.copyFileSync(src, targetPath);
|
|
56
61
|
}
|
|
@@ -106,7 +111,7 @@ function renderPackageJson(src, dest) {
|
|
|
106
111
|
/**
|
|
107
112
|
* 获取包管理器的默认版本号
|
|
108
113
|
* @param packageManager 包管理器类型
|
|
109
|
-
* @returns
|
|
114
|
+
* @returns 包管理器版本字符串,如果未找到则返回 pnpm 的默认版本
|
|
110
115
|
*/
|
|
111
116
|
function getPackageManagerVersion(packageManager) {
|
|
112
117
|
const versions = {
|
|
@@ -158,7 +163,7 @@ export function updatePackageJsonMetadata(packageJsonPath, projectName, descript
|
|
|
158
163
|
* 重命名特殊文件
|
|
159
164
|
* 某些文件不能以 . 开头存在于模板中,需要特殊处理
|
|
160
165
|
* @param name 原始文件名
|
|
161
|
-
* @returns
|
|
166
|
+
* @returns 转换后的文件名,_ 开头的文件会转换为 . 开头
|
|
162
167
|
*/
|
|
163
168
|
function renameFile(name) {
|
|
164
169
|
// _开头的文件转换为.开头
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moluoxixi/create-app",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.406",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Create Vue/React projects with atomic layered architecture",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
"test:all": "tsx src/test.ts",
|
|
78
78
|
"type-check": "tsc --noEmit",
|
|
79
79
|
"lint:eslint": "eslint . --fix",
|
|
80
|
+
"submodule:update": "git submodule init && git submodule update --init --recursive",
|
|
80
81
|
"lint-staged": "lint-staged",
|
|
81
82
|
"commit": "git add . && git-cz",
|
|
82
83
|
"version:patch": "pnpm version patch --no-git-tag-version",
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
"packageManager": "pnpm@10.8.0",
|
|
10
10
|
"scripts": {
|
|
11
11
|
"dev": "vite",
|
|
12
|
+
"submodule:update": "git submodule init && git submodule update --init --recursive",
|
|
13
|
+
"prepare": "pnpm submodule:update",
|
|
12
14
|
"build": "vite build --mode production",
|
|
13
15
|
"build:zip": "vite build --mode production && tsx scripts/build.mts",
|
|
14
16
|
"preview": "vite preview",
|
|
@@ -45,7 +47,7 @@
|
|
|
45
47
|
"tailwindcss": "^4.0.0",
|
|
46
48
|
"tsx": "^4.20.5",
|
|
47
49
|
"typescript": "~5.8.0",
|
|
48
|
-
"vite": "
|
|
50
|
+
"vite": "7.1.11"
|
|
49
51
|
},
|
|
50
52
|
"author": "",
|
|
51
53
|
"license": "MIT"
|
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
* 打包生成的 dist 目录为 zip 文件
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import path from 'node:path'
|
|
7
|
-
import process from 'node:process'
|
|
8
|
-
import compressing from 'compressing'
|
|
9
|
-
import dotenv from 'dotenv'
|
|
6
|
+
import path from 'node:path'
|
|
7
|
+
import process from 'node:process'
|
|
8
|
+
import compressing from 'compressing'
|
|
9
|
+
import dotenv from 'dotenv'
|
|
10
10
|
|
|
11
11
|
// 加载环境变量
|
|
12
|
-
dotenv.config({ path: '.env.production' })
|
|
12
|
+
dotenv.config({ path: '.env.production' })
|
|
13
13
|
|
|
14
|
-
const appCode = process.env.VITE_APP_CODE || 'app'
|
|
15
|
-
const rootPath = path.resolve()
|
|
16
|
-
const distPath = path.join(rootPath, 'dist')
|
|
17
|
-
const outputPath = path.join(rootPath, `${appCode}.zip`)
|
|
14
|
+
const appCode = process.env.VITE_APP_CODE || 'app'
|
|
15
|
+
const rootPath = path.resolve()
|
|
16
|
+
const distPath = path.join(rootPath, 'dist')
|
|
17
|
+
const outputPath = path.join(rootPath, `${appCode}.zip`)
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* 构建 ZIP 压缩包
|
|
@@ -24,14 +24,14 @@ const outputPath = path.join(rootPath, `${appCode}.zip`);
|
|
|
24
24
|
*/
|
|
25
25
|
async function buildZip(): Promise<void> {
|
|
26
26
|
try {
|
|
27
|
-
console.log(`📦 Compressing ${distPath} to ${outputPath}...`)
|
|
28
|
-
await compressing.zip.compressDir(distPath, outputPath)
|
|
29
|
-
console.log(`✅ Successfully created ${outputPath}`)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
console.log(`📦 Compressing ${distPath} to ${outputPath}...`)
|
|
28
|
+
await compressing.zip.compressDir(distPath, outputPath)
|
|
29
|
+
console.log(`✅ Successfully created ${outputPath}`)
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
console.error('❌ Failed to compress:', error)
|
|
33
|
+
process.exit(1)
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
36
|
|
|
36
|
-
buildZip()
|
|
37
|
-
|
|
37
|
+
buildZip()
|
|
@@ -20,14 +20,7 @@ html {
|
|
|
20
20
|
|
|
21
21
|
body {
|
|
22
22
|
min-height: 100vh;
|
|
23
|
-
font-family:
|
|
24
|
-
-apple-system,
|
|
25
|
-
BlinkMacSystemFont,
|
|
26
|
-
'Segoe UI',
|
|
27
|
-
Roboto,
|
|
28
|
-
'Helvetica Neue',
|
|
29
|
-
Arial,
|
|
30
|
-
sans-serif;
|
|
23
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
31
24
|
}
|
|
32
25
|
|
|
33
26
|
img,
|
|
@@ -69,4 +62,3 @@ ol {
|
|
|
69
62
|
#app {
|
|
70
63
|
min-height: 100vh;
|
|
71
64
|
}
|
|
72
|
-
|
|
@@ -9,7 +9,7 @@ export const STORAGE_KEYS = {
|
|
|
9
9
|
USER_INFO: 'userInfo',
|
|
10
10
|
LANGUAGE: 'language',
|
|
11
11
|
THEME: 'theme',
|
|
12
|
-
} as const
|
|
12
|
+
} as const
|
|
13
13
|
|
|
14
14
|
/** 响应码 */
|
|
15
15
|
export const RESPONSE_CODE = {
|
|
@@ -18,12 +18,11 @@ export const RESPONSE_CODE = {
|
|
|
18
18
|
FORBIDDEN: 403,
|
|
19
19
|
NOT_FOUND: 404,
|
|
20
20
|
SERVER_ERROR: 500,
|
|
21
|
-
} as const
|
|
21
|
+
} as const
|
|
22
22
|
|
|
23
23
|
/** 分页默认配置 */
|
|
24
24
|
export const PAGINATION = {
|
|
25
25
|
DEFAULT_PAGE: 1,
|
|
26
26
|
DEFAULT_PAGE_SIZE: 10,
|
|
27
27
|
PAGE_SIZE_OPTIONS: [10, 20, 50, 100],
|
|
28
|
-
} as const
|
|
29
|
-
|
|
28
|
+
} as const
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* @returns Promise,在指定时间后 resolve
|
|
10
10
|
*/
|
|
11
11
|
export function sleep(ms: number): Promise<void> {
|
|
12
|
-
return new Promise(
|
|
12
|
+
return new Promise(resolve => setTimeout(resolve, ms))
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -18,7 +18,7 @@ export function sleep(ms: number): Promise<void> {
|
|
|
18
18
|
* @returns 深拷贝后的新对象
|
|
19
19
|
*/
|
|
20
20
|
export function deepClone<T>(obj: T): T {
|
|
21
|
-
return JSON.parse(JSON.stringify(obj))
|
|
21
|
+
return JSON.parse(JSON.stringify(obj))
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/**
|
|
@@ -29,17 +29,17 @@ export function deepClone<T>(obj: T): T {
|
|
|
29
29
|
*/
|
|
30
30
|
export function debounce<T extends (...args: unknown[]) => unknown>(
|
|
31
31
|
fn: T,
|
|
32
|
-
delay: number
|
|
32
|
+
delay: number,
|
|
33
33
|
): (...args: Parameters<T>) => void {
|
|
34
|
-
let timer: ReturnType<typeof setTimeout> | null = null
|
|
34
|
+
let timer: ReturnType<typeof setTimeout> | null = null
|
|
35
35
|
return function (this: unknown, ...args: Parameters<T>) {
|
|
36
36
|
if (timer) {
|
|
37
|
-
clearTimeout(timer)
|
|
37
|
+
clearTimeout(timer)
|
|
38
38
|
}
|
|
39
39
|
timer = setTimeout(() => {
|
|
40
|
-
fn.apply(this, args)
|
|
41
|
-
}, delay)
|
|
42
|
-
}
|
|
40
|
+
fn.apply(this, args)
|
|
41
|
+
}, delay)
|
|
42
|
+
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
/**
|
|
@@ -50,16 +50,16 @@ export function debounce<T extends (...args: unknown[]) => unknown>(
|
|
|
50
50
|
*/
|
|
51
51
|
export function throttle<T extends (...args: unknown[]) => unknown>(
|
|
52
52
|
fn: T,
|
|
53
|
-
delay: number
|
|
53
|
+
delay: number,
|
|
54
54
|
): (...args: Parameters<T>) => void {
|
|
55
|
-
let lastTime = 0
|
|
55
|
+
let lastTime = 0
|
|
56
56
|
return function (this: unknown, ...args: Parameters<T>) {
|
|
57
|
-
const now = Date.now()
|
|
57
|
+
const now = Date.now()
|
|
58
58
|
if (now - lastTime >= delay) {
|
|
59
|
-
lastTime = now
|
|
60
|
-
fn.apply(this, args)
|
|
59
|
+
lastTime = now
|
|
60
|
+
fn.apply(this, args)
|
|
61
61
|
}
|
|
62
|
-
}
|
|
62
|
+
}
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
/**
|
|
@@ -69,13 +69,13 @@ export function throttle<T extends (...args: unknown[]) => unknown>(
|
|
|
69
69
|
* @returns 格式化后的日期字符串
|
|
70
70
|
*/
|
|
71
71
|
export function formatDate(date: Date | string | number, format = 'YYYY-MM-DD HH:mm:ss'): string {
|
|
72
|
-
const d = new Date(date)
|
|
73
|
-
const year = d.getFullYear()
|
|
74
|
-
const month = String(d.getMonth() + 1).padStart(2, '0')
|
|
75
|
-
const day = String(d.getDate()).padStart(2, '0')
|
|
76
|
-
const hours = String(d.getHours()).padStart(2, '0')
|
|
77
|
-
const minutes = String(d.getMinutes()).padStart(2, '0')
|
|
78
|
-
const seconds = String(d.getSeconds()).padStart(2, '0')
|
|
72
|
+
const d = new Date(date)
|
|
73
|
+
const year = d.getFullYear()
|
|
74
|
+
const month = String(d.getMonth() + 1).padStart(2, '0')
|
|
75
|
+
const day = String(d.getDate()).padStart(2, '0')
|
|
76
|
+
const hours = String(d.getHours()).padStart(2, '0')
|
|
77
|
+
const minutes = String(d.getMinutes()).padStart(2, '0')
|
|
78
|
+
const seconds = String(d.getSeconds()).padStart(2, '0')
|
|
79
79
|
|
|
80
80
|
return format
|
|
81
81
|
.replace('YYYY', String(year))
|
|
@@ -83,6 +83,5 @@ export function formatDate(date: Date | string | number, format = 'YYYY-MM-DD HH
|
|
|
83
83
|
.replace('DD', day)
|
|
84
84
|
.replace('HH', hours)
|
|
85
85
|
.replace('mm', minutes)
|
|
86
|
-
.replace('ss', seconds)
|
|
86
|
+
.replace('ss', seconds)
|
|
87
87
|
}
|
|
88
|
-
|
|
@@ -32,7 +32,6 @@ export default ViteConfig(
|
|
|
32
32
|
<% } -%>
|
|
33
33
|
viteConfig: {
|
|
34
34
|
plugins: [
|
|
35
|
-
cssModuleGlobalRootPlugin() as any,
|
|
36
35
|
<% if (sentry) { -%>
|
|
37
36
|
viteEnv.VITE_SENTRY && mode === 'production' && sentryVitePlugin({
|
|
38
37
|
authToken: process.env.SENTRY_AUTH_TOKEN,
|
|
@@ -61,6 +60,22 @@ export default ViteConfig(
|
|
|
61
60
|
scss: {
|
|
62
61
|
silenceDeprecations: ['legacy-js-api'],
|
|
63
62
|
api: 'modern-compiler',
|
|
63
|
+
<% if (uiLibrary === 'element-plus') { -%>
|
|
64
|
+
additionalData: (source: string, filename: string) => {
|
|
65
|
+
if (filename.includes('assets/styles/element/index.scss')) {
|
|
66
|
+
return `$namespace : ${appCode || 'el'};
|
|
67
|
+
${source}`
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return source
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
<% } -%>
|
|
74
|
+
},
|
|
75
|
+
postcss: {
|
|
76
|
+
plugins: [
|
|
77
|
+
cssModuleGlobalRootPlugin() as any,
|
|
78
|
+
],
|
|
64
79
|
},
|
|
65
80
|
},
|
|
66
81
|
},
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
// Skip Husky install in production and CI
|
|
2
|
+
import process from 'node:process'
|
|
3
|
+
|
|
2
4
|
if (process.env.NODE_ENV === 'production' || process.env.CI === 'true') {
|
|
3
5
|
process.exit(0)
|
|
4
6
|
}
|
|
7
|
+
// eslint-disable-next-line antfu/no-top-level-await
|
|
5
8
|
const husky = (await import('husky')).default
|
|
6
9
|
console.log(husky())
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"scripts": {
|
|
3
|
-
"prepare": "node .husky/install.mjs",
|
|
3
|
+
"prepare": "pnpm submodule:update && node .husky/install.mjs",
|
|
4
4
|
"lint-staged": "lint-staged",
|
|
5
5
|
"commit": "git add . && git-cz"
|
|
6
6
|
},
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@commitlint/cli": "^19.8.0",
|
|
22
22
|
"@commitlint/config-conventional": "^19.8.0",
|
|
23
|
+
"@commitlint/types": "^19.8.0",
|
|
23
24
|
"commitizen": "^4.3.1",
|
|
24
25
|
"cz-customizable": "^7.4.0",
|
|
25
26
|
"husky": "^9.1.7",
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
3
|
+
|
|
4
|
+
case `uname` in
|
|
5
|
+
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
|
6
|
+
esac
|
|
7
|
+
|
|
8
|
+
if [ -z "$NODE_PATH" ]; then
|
|
9
|
+
export NODE_PATH="/mnt/e/project/template/vite-cli/node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node_modules:/mnt/e/project/template/vite-cli/node_modules/.pnpm/browserslist@4.28.1/node_modules:/mnt/e/project/template/vite-cli/node_modules/.pnpm/node_modules"
|
|
10
|
+
else
|
|
11
|
+
export NODE_PATH="/mnt/e/project/template/vite-cli/node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node_modules:/mnt/e/project/template/vite-cli/node_modules/.pnpm/browserslist@4.28.1/node_modules:/mnt/e/project/template/vite-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
12
|
+
fi
|
|
13
|
+
if [ -x "$basedir/node" ]; then
|
|
14
|
+
exec "$basedir/node" "$basedir/../../../../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/cli.js" "$@"
|
|
15
|
+
else
|
|
16
|
+
exec node "$basedir/../../../../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/cli.js" "$@"
|
|
17
|
+
fi
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
@SETLOCAL
|
|
2
|
+
@IF NOT DEFINED NODE_PATH (
|
|
3
|
+
@SET "NODE_PATH=E:\project\template\vite-cli\node_modules\.pnpm\browserslist@4.28.1\node_modules\browserslist\node_modules;E:\project\template\vite-cli\node_modules\.pnpm\browserslist@4.28.1\node_modules;E:\project\template\vite-cli\node_modules\.pnpm\node_modules"
|
|
4
|
+
) ELSE (
|
|
5
|
+
@SET "NODE_PATH=E:\project\template\vite-cli\node_modules\.pnpm\browserslist@4.28.1\node_modules\browserslist\node_modules;E:\project\template\vite-cli\node_modules\.pnpm\browserslist@4.28.1\node_modules;E:\project\template\vite-cli\node_modules\.pnpm\node_modules;%NODE_PATH%"
|
|
6
|
+
)
|
|
7
|
+
@IF EXIST "%~dp0\node.exe" (
|
|
8
|
+
"%~dp0\node.exe" "%~dp0\..\..\..\..\..\node_modules\.pnpm\browserslist@4.28.1\node_modules\browserslist\cli.js" %*
|
|
9
|
+
) ELSE (
|
|
10
|
+
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
|
11
|
+
node "%~dp0\..\..\..\..\..\node_modules\.pnpm\browserslist@4.28.1\node_modules\browserslist\cli.js" %*
|
|
12
|
+
)
|