├── .prettierrc ├── packages └── create-soybean │ ├── template-tsdown │ ├── _prettierrc │ ├── src │ │ └── index.ts │ ├── _npmrc │ ├── eslint.config.js │ ├── _editorconfig │ ├── .vscode │ │ ├── settings.json │ │ ├── launch.json │ │ └── extensions.json │ ├── tsdown.config.ts │ ├── _gitattributes │ ├── _gitignore │ ├── tsconfig.json │ ├── .github │ │ └── workflows │ │ │ └── release.yml │ └── package.json │ ├── template-pnpm-monorepo │ ├── _prettierrc │ ├── pnpm-workspace.yaml │ ├── src │ │ └── index.ts │ ├── _npmrc │ ├── eslint.config.js │ ├── packages │ │ └── demo-pkg │ │ │ ├── tsconfig.json │ │ │ └── package.json │ ├── tsconfig.json │ ├── _editorconfig │ ├── .vscode │ │ ├── settings.json │ │ ├── launch.json │ │ └── extensions.json │ ├── _gitattributes │ ├── _gitignore │ ├── tsconfig.base.json │ └── package.json │ ├── template-vue-tsdown │ ├── _prettierrc │ ├── _npmrc │ ├── src │ │ ├── index.ts │ │ └── demo-pkg.vue │ ├── eslint.config.js │ ├── playground │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── App.vue │ │ │ └── style.css │ │ └── index.html │ ├── vite.config.ts │ ├── vitest.config.ts │ ├── _editorconfig │ ├── .vscode │ │ ├── settings.json │ │ ├── launch.json │ │ └── extensions.json │ ├── tsdown.config.ts │ ├── _gitattributes │ ├── _gitignore │ ├── tsconfig.json │ ├── .github │ │ └── workflows │ │ │ └── release.yml │ └── package.json │ ├── template-vue │ ├── src │ │ ├── shared │ │ │ └── index.ts │ │ ├── constants │ │ │ └── index.ts │ │ ├── views │ │ │ ├── list │ │ │ │ ├── components │ │ │ │ │ ├── demo.vue │ │ │ │ │ └── search-list.vue │ │ │ │ ├── add.vue │ │ │ │ ├── index.vue │ │ │ │ ├── edit_[id].vue │ │ │ │ ├── modules │ │ │ │ │ └── list-table.vue │ │ │ │ ├── detail_[id]_[userId].vue │ │ │ │ ├── detail2-[[id]]-[[userId]].vue │ │ │ │ └── [id].vue │ │ │ ├── (builtin) │ │ │ │ ├── 403.vue │ │ │ │ ├── 404.vue │ │ │ │ ├── login │ │ │ │ │ └── index.vue │ │ │ │ └── wip.vue │ │ │ ├── home │ │ │ │ ├── child.vue │ │ │ │ ├── child2.vue │ │ │ │ └── index.vue │ │ │ └── demo.tsx │ │ ├── store │ │ │ ├── id.ts │ │ │ ├── index.ts │ │ │ ├── modules │ │ │ │ └── counter │ │ │ │ │ └── index.ts │ │ │ └── plugins │ │ │ │ └── index.ts │ │ ├── plugins │ │ │ └── assets.ts │ │ ├── styles │ │ │ └── app.css │ │ ├── components │ │ │ └── HelloWorld.vue │ │ ├── App.vue │ │ ├── layouts │ │ │ ├── base │ │ │ │ └── index.vue │ │ │ └── blank │ │ │ │ └── index.vue │ │ ├── main.ts │ │ ├── typings │ │ │ └── components.d.ts │ │ └── router │ │ │ └── index.ts │ ├── _npmrc │ ├── README.md │ ├── public │ │ └── favicon.ico │ ├── tsconfig.json │ ├── _editorconfig │ ├── er.config.ts │ ├── index.html │ ├── .vscode │ │ ├── settings.json │ │ ├── extensions.json │ │ └── launch.json │ ├── _gitattributes │ ├── _gitignore │ ├── uno.config.ts │ ├── eslint.config.js │ ├── tsconfig.base.json │ ├── vite.config.ts │ └── package.json │ ├── src │ ├── bin.js │ ├── shared.ts │ └── index.ts │ ├── tsdown.config.ts │ ├── README.md │ ├── tsconfig.json │ └── package.json ├── pnpm-workspace.yaml ├── src ├── bin.js ├── command │ ├── cleanup.ts │ ├── index.ts │ ├── ncu.ts │ ├── release.ts │ ├── changelog.ts │ └── git-commit.ts ├── shared │ └── index.ts ├── types │ └── index.ts ├── config │ └── index.ts ├── locales │ └── index.ts └── index.ts ├── .npmrc ├── eslint.config.js ├── tsdown.config.ts ├── .editorconfig ├── .gitattributes ├── .vscode ├── launch.json ├── settings.json └── extensions.json ├── .gitignore ├── tsconfig.json ├── scripts └── release.ts ├── .github └── workflows │ └── release.yml ├── README.md ├── package.json └── CHANGELOG.md /.prettierrc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/_prettierrc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/_prettierrc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/_prettierrc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'packages/*' 3 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/constants/index.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/list/components/demo.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'packages/*' 3 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/src/index.ts: -------------------------------------------------------------------------------- 1 | export function fn() { 2 | return ''; 3 | } 4 | -------------------------------------------------------------------------------- /src/bin.js: -------------------------------------------------------------------------------- 1 | import { require } from 'tsx/cjs/api'; 2 | 3 | require('./index.ts', import.meta.url); 4 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/src/index.ts: -------------------------------------------------------------------------------- 1 | export function fn() { 2 | return 1; 3 | } 4 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmmirror.com/ 2 | shamefully-hoist=true 3 | ignore-workspace-root-check=true 4 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/_npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmmirror.com/ 2 | shamefully-hoist=true 3 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/_npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmmirror.com/ 2 | shamefully-hoist=true 3 | -------------------------------------------------------------------------------- /packages/create-soybean/src/bin.js: -------------------------------------------------------------------------------- 1 | import { require } from 'tsx/cjs/api'; 2 | 3 | require('./index.ts', import.meta.url); 4 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/src/index.ts: -------------------------------------------------------------------------------- 1 | import DemoPkg from './demo-pkg.vue'; 2 | 3 | export { DemoPkg }; 4 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/store/id.ts: -------------------------------------------------------------------------------- 1 | export const storeIdRecord = { 2 | counter: 'counter-store' 3 | }; 4 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@soybeanjs/eslint-config'; 2 | 3 | export default defineConfig({ vue: true }); 4 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/_npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | ignore-workspace-root-check=true 3 | link-workspace-packages=true 4 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/README.md: -------------------------------------------------------------------------------- 1 | # template-vue 2 | 3 | This template should help get you started developing with Vue 3 in Vite. 4 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/plugins/assets.ts: -------------------------------------------------------------------------------- 1 | import '@unocss/reset/tailwind.css'; 2 | import 'uno.css'; 3 | import '../styles/app.css'; 4 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/styles/app.css: -------------------------------------------------------------------------------- 1 | html, 2 | body, 3 | #app { 4 | height: 100%; 5 | } 6 | html { 7 | overflow-x: hidden; 8 | } -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/eslint.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@soybeanjs/eslint-config'; 2 | 3 | export default defineConfig(); 4 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/_npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmmirror.com/ 2 | shamefully-hoist=true 3 | ignore-workspace-root-check=true 4 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/soybeanjs/cli/HEAD/packages/create-soybean/template-vue/public/favicon.ico -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/eslint.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@soybeanjs/eslint-config'; 2 | 3 | export default defineConfig(); 4 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/packages/demo-pkg/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": ["src/**/*"] 4 | } 5 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /src/command/cleanup.ts: -------------------------------------------------------------------------------- 1 | import { rimraf } from 'rimraf'; 2 | 3 | export async function cleanup(paths: string[]) { 4 | await rimraf(paths, { glob: true }); 5 | } 6 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.base.json", 3 | "include": ["./**/*.ts", "./**/*.tsx", "./**/*.vue"] 4 | } 5 | -------------------------------------------------------------------------------- /src/command/index.ts: -------------------------------------------------------------------------------- 1 | export * from './git-commit'; 2 | export * from './cleanup'; 3 | export * from './ncu'; 4 | export * from './changelog'; 5 | export * from './release'; 6 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/eslint.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@soybeanjs/eslint-config'; 2 | 3 | export default defineConfig({ 4 | vue: true 5 | }); 6 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/list/add.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/App.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/(builtin)/403.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/(builtin)/404.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/home/child.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/home/child2.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/list/index.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/list/edit_[id].vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/playground/src/index.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue'; 2 | import App from './App.vue'; 3 | import './style.css'; 4 | 5 | createApp(App).mount('#app'); 6 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/(builtin)/login/index.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/list/modules/list-table.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/demo.tsx: -------------------------------------------------------------------------------- 1 | import { defineComponent } from 'vue'; 2 | 3 | export default defineComponent({ 4 | setup() { 5 | return () =>
Demo
; 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/list/components/search-list.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/playground/src/App.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/list/detail_[id]_[userId].vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/(builtin)/wip.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/list/detail2-[[id]]-[[userId]].vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/command/ncu.ts: -------------------------------------------------------------------------------- 1 | import { execCommand } from '../shared'; 2 | 3 | export async function ncu(args: string[] = ['--deep', '-u']) { 4 | execCommand('npx', ['npm-check-updates', ...args], { stdio: 'inherit' }); 5 | } 6 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "types": ["soy-ui"] 4 | }, 5 | "extends": "./tsconfig.base.json", 6 | "include": ["./**/*.ts", "./**/*.tsx", "./**/*.vue"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import vue from 'unplugin-vue/vite'; 3 | 4 | export default defineConfig({ 5 | root: './playground', 6 | plugins: [vue()] 7 | }); 8 | -------------------------------------------------------------------------------- /tsdown.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsdown'; 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | platform: 'node', 6 | clean: true, 7 | dts: true, 8 | sourcemap: false, 9 | minify: false 10 | }); 11 | -------------------------------------------------------------------------------- /packages/create-soybean/tsdown.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsdown'; 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | platform: 'node', 6 | clean: true, 7 | sourcemap: false, 8 | minify: false 9 | }); 10 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/home/index.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | import vue from 'unplugin-vue/vite'; 3 | 4 | export default defineConfig({ 5 | plugins: [vue()], 6 | test: { 7 | environment: 'happy-dom' 8 | } 9 | }); 10 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/_editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/_editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/_editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /src/shared/index.ts: -------------------------------------------------------------------------------- 1 | import type { Options } from 'execa'; 2 | 3 | export async function execCommand(cmd: string, args: string[], options?: Options) { 4 | const { execa } = await import('execa'); 5 | const res = await execa(cmd, args, options); 6 | return (res?.stdout as string)?.trim() || ''; 7 | } 8 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/_editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/views/list/[id].vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/layouts/base/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.codeActionsOnSave": { 3 | "source.fixAll.eslint": "explicit", 4 | "source.organizeImports": "never" 5 | }, 6 | "editor.formatOnSave": false, 7 | "eslint.validate": ["json", "jsonc"], 8 | "prettier.enable": false 9 | } 10 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/layouts/blank/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.codeActionsOnSave": { 3 | "source.fixAll.eslint": "explicit", 4 | "source.organizeImports": "never" 5 | }, 6 | "editor.formatOnSave": false, 7 | "eslint.validate": ["json", "jsonc"], 8 | "prettier.enable": false 9 | } 10 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/er.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'elegant-router'; 2 | 3 | export default defineConfig({ 4 | pageInclude: ['**/*.vue', '**/*.tsx', '**/*.jsx'], 5 | reuseRoutes: ['/reuse1', '/reuse2/:id', '/reuse3/:id?', '/reuse4/:id?/:name?'], 6 | getRouteMeta: node => ({ 7 | title: node.name 8 | }) 9 | }); 10 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.codeActionsOnSave": { 3 | "source.fixAll.eslint": "explicit", 4 | "source.organizeImports": "never" 5 | }, 6 | "eslint.useFlatConfig": true, 7 | "editor.formatOnSave": false, 8 | "eslint.validate": ["json", "jsonc"], 9 | "prettier.enable": false 10 | } 11 | -------------------------------------------------------------------------------- /src/command/release.ts: -------------------------------------------------------------------------------- 1 | import { versionBump } from 'bumpp'; 2 | 3 | export async function release(execute = 'npx soy changelog', push = true) { 4 | await versionBump({ 5 | files: ['**/package.json', '!**/node_modules'], 6 | execute, 7 | all: true, 8 | tag: true, 9 | commit: 'chore(projects): release v%s', 10 | push 11 | }); 12 | } 13 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | "*.vue" eol=lf 2 | "*.js" eol=lf 3 | "*.ts" eol=lf 4 | "*.jsx" eol=lf 5 | "*.tsx" eol=lf 6 | "*.cjs" eol=lf 7 | "*.cts" eol=lf 8 | "*.mjs" eol=lf 9 | "*.mts" eol=lf 10 | "*.json" eol=lf 11 | "*.html" eol=lf 12 | "*.css" eol=lf 13 | "*.less" eol=lf 14 | "*.scss" eol=lf 15 | "*.sass" eol=lf 16 | "*.styl" eol=lf 17 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/store/index.ts: -------------------------------------------------------------------------------- 1 | import type { App } from 'vue'; 2 | import { createPinia } from 'pinia'; 3 | import { resetSetupStore } from './plugins'; 4 | 5 | /** Setup Vue store plugin pinia */ 6 | export function setupStore(app: App) { 7 | const store = createPinia(); 8 | 9 | store.use(resetSetupStore); 10 | 11 | app.use(store); 12 | } 13 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/packages/demo-pkg/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo-pkg", 3 | "type": "module", 4 | "version": "1.4.1", 5 | "private": true, 6 | "packageManager": "pnpm@10.20.0", 7 | "scripts": { 8 | "typecheck": "tsc --noEmit --skipLibCheck" 9 | }, 10 | "dependencies": {}, 11 | "devDependencies": { 12 | "typescript": "5.9.3" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/command/changelog.ts: -------------------------------------------------------------------------------- 1 | import { generateChangelog, generateTotalChangelog } from '@soybeanjs/changelog'; 2 | import type { ChangelogOption } from '@soybeanjs/changelog'; 3 | 4 | export async function genChangelog(options?: Partial, total = false) { 5 | if (total) { 6 | await generateTotalChangelog(options); 7 | } else { 8 | await generateChangelog(options); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/playground/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Template Vue TSDown 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/create-soybean/README.md: -------------------------------------------------------------------------------- 1 | # create-soybean 2 | 3 | SoybeanJS's command line to create different project templates 4 | 5 | ## currently support 6 | 7 | - template-pnpm-monorepo: create a monorepo project with pnpm 8 | - template-tsdown: create a ts library project quickly with tsdown 9 | - template-vue: create a vue project quickly 10 | - template-vue-tsdown: create a vue library project quickly with tsdown 11 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue'; 2 | import './plugins/assets'; 3 | import App from './App.vue'; 4 | import { setupRouter } from './router'; 5 | import { setupStore } from './store'; 6 | 7 | async function setupApp() { 8 | const app = createApp(App); 9 | 10 | setupStore(app); 11 | 12 | await setupRouter(app); 13 | 14 | app.mount('#app'); 15 | } 16 | 17 | setupApp(); 18 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0.0", 3 | "configurations": [ 4 | { 5 | "name": "TS Debugger tsx", 6 | "type": "node", 7 | "request": "launch", 8 | "program": "${file}", 9 | "runtimeExecutable": "tsx", 10 | "console": "integratedTerminal", 11 | "internalConsoleOptions": "neverOpen", 12 | "skipFiles": ["/**", "${workspaceFolder}/node_modules/**"] 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/tsdown.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsdown'; 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | platform: 'neutral', 6 | clean: true, 7 | dts: true, 8 | format: ['esm', 'cjs'], 9 | outExtensions: ctx => { 10 | return { 11 | js: ctx.format === 'cjs' ? '.cjs' : '.mjs' 12 | }; 13 | }, 14 | shims: true, 15 | sourcemap: false, 16 | minify: false 17 | }); 18 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.codeActionsOnSave": { 3 | "source.fixAll.eslint": "explicit", 4 | "source.organizeImports": "never" 5 | }, 6 | "editor.formatOnSave": false, 7 | "eslint.validate": ["html", "css", "scss", "json", "jsonc"], 8 | "prettier.enable": false, 9 | "typescript.tsdk": "node_modules/typescript/lib", 10 | "unocss.root": ["./"], 11 | "vue.server.hybridMode": true 12 | } 13 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.codeActionsOnSave": { 3 | "source.fixAll.eslint": "explicit", 4 | "source.organizeImports": "never" 5 | }, 6 | "editor.formatOnSave": false, 7 | "eslint.validate": [ 8 | "html", 9 | "css", 10 | "scss", 11 | "json", 12 | "jsonc", 13 | "javascript", 14 | "javascriptreact", 15 | "typescript", 16 | "typescriptreact", 17 | "vue" 18 | ], 19 | "prettier.enable": false 20 | } 21 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0.0", 3 | "configurations": [ 4 | { 5 | "name": "TS Debugger tsx", 6 | "type": "node", 7 | "request": "launch", 8 | "program": "${file}", 9 | "runtimeExecutable": "tsx", 10 | "console": "integratedTerminal", 11 | "internalConsoleOptions": "neverOpen", 12 | "skipFiles": ["/**", "${workspaceFolder}/node_modules/**"] 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0.0", 3 | "configurations": [ 4 | { 5 | "name": "TS Debugger tsx", 6 | "type": "node", 7 | "request": "launch", 8 | "program": "${file}", 9 | "runtimeExecutable": "tsx", 10 | "console": "integratedTerminal", 11 | "internalConsoleOptions": "neverOpen", 12 | "skipFiles": ["/**", "${workspaceFolder}/node_modules/**"] 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0.0", 3 | "configurations": [ 4 | { 5 | "name": "TS Debugger tsx", 6 | "type": "node", 7 | "request": "launch", 8 | "program": "${file}", 9 | "runtimeExecutable": "tsx", 10 | "console": "integratedTerminal", 11 | "internalConsoleOptions": "neverOpen", 12 | "skipFiles": ["/**", "${workspaceFolder}/node_modules/**"] 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | stats.html 17 | 18 | /cypress/videos/ 19 | /cypress/screenshots/ 20 | 21 | # Editor directories and files 22 | .vscode/* 23 | !.vscode/extensions.json 24 | !.vscode/settings.json 25 | !.vscode/launch.json 26 | .idea 27 | *.suo 28 | *.ntvs* 29 | *.njsproj 30 | *.sln 31 | *.sw? 32 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/store/modules/counter/index.ts: -------------------------------------------------------------------------------- 1 | import { computed, ref } from 'vue'; 2 | import { defineStore } from 'pinia'; 3 | import { storeIdRecord } from '../../id'; 4 | 5 | export const useCounterStore = defineStore(storeIdRecord.counter, () => { 6 | const count = ref(0); 7 | 8 | const doubleCount = computed(() => count.value * 2); 9 | 10 | function increment() { 11 | count.value += 1; 12 | } 13 | 14 | return { count, doubleCount, increment }; 15 | }); 16 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/_gitattributes: -------------------------------------------------------------------------------- 1 | "*.js" eol=lf 2 | "*.ts" eol=lf 3 | "*.jsx" eol=lf 4 | "*.tsx" eol=lf 5 | "*.cjs" eol=lf 6 | "*.cts" eol=lf 7 | "*.mjs" eol=lf 8 | "*.mts" eol=lf 9 | "*.html" eol=lf 10 | "*.css" eol=lf 11 | "*.vue" eol=lf 12 | "*.json" eol=lf 13 | "*.less" eol=lf 14 | "*.scss" eol=lf 15 | "*.sass" eol=lf 16 | "*.styl" eol=lf 17 | "*.svelte" eol=lf 18 | "*.md" eol=lf 19 | "*.yml" eol=lf 20 | "*.astro" eol=lf 21 | "*.mdx" eol=lf 22 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/tsdown.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsdown'; 2 | import unpluginVue from 'unplugin-vue/rolldown'; 3 | import unpluginVueJsx from 'unplugin-vue-jsx/rolldown'; 4 | 5 | export default defineConfig({ 6 | entry: ['src/index.ts'], 7 | platform: 'neutral', 8 | plugins: [unpluginVue({ isProduction: true }), unpluginVueJsx()], 9 | dts: { 10 | vue: true 11 | }, 12 | clean: true, 13 | external: ['vue'], 14 | sourcemap: false, 15 | minify: false 16 | }); 17 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/_gitattributes: -------------------------------------------------------------------------------- 1 | "*.js" eol=lf 2 | "*.ts" eol=lf 3 | "*.jsx" eol=lf 4 | "*.tsx" eol=lf 5 | "*.cjs" eol=lf 6 | "*.cts" eol=lf 7 | "*.mjs" eol=lf 8 | "*.mts" eol=lf 9 | "*.html" eol=lf 10 | "*.css" eol=lf 11 | "*.vue" eol=lf 12 | "*.json" eol=lf 13 | "*.less" eol=lf 14 | "*.scss" eol=lf 15 | "*.sass" eol=lf 16 | "*.styl" eol=lf 17 | "*.svelte" eol=lf 18 | "*.md" eol=lf 19 | "*.yml" eol=lf 20 | "*.astro" eol=lf 21 | "*.mdx" eol=lf 22 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/_gitattributes: -------------------------------------------------------------------------------- 1 | "*.js" eol=lf 2 | "*.ts" eol=lf 3 | "*.jsx" eol=lf 4 | "*.tsx" eol=lf 5 | "*.cjs" eol=lf 6 | "*.cts" eol=lf 7 | "*.mjs" eol=lf 8 | "*.mts" eol=lf 9 | "*.html" eol=lf 10 | "*.css" eol=lf 11 | "*.vue" eol=lf 12 | "*.json" eol=lf 13 | "*.less" eol=lf 14 | "*.scss" eol=lf 15 | "*.sass" eol=lf 16 | "*.styl" eol=lf 17 | "*.svelte" eol=lf 18 | "*.md" eol=lf 19 | "*.yml" eol=lf 20 | "*.astro" eol=lf 21 | "*.mdx" eol=lf 22 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/_gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | !.vscode/settings.json 24 | !.vscode/launch.json 25 | .idea 26 | *.suo 27 | *.ntvs* 28 | *.njsproj 29 | *.sln 30 | *.sw? 31 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/_gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | !.vscode/settings.json 24 | !.vscode/launch.json 25 | .idea 26 | *.suo 27 | *.ntvs* 28 | *.njsproj 29 | *.sln 30 | *.sw? 31 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/_gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | !.vscode/settings.json 24 | !.vscode/launch.json 25 | .idea 26 | *.suo 27 | *.ntvs* 28 | *.njsproj 29 | *.sln 30 | *.sw? 31 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/_gitattributes: -------------------------------------------------------------------------------- 1 | "*.js" eol=lf 2 | "*.ts" eol=lf 3 | "*.jsx" eol=lf 4 | "*.tsx" eol=lf 5 | "*.cjs" eol=lf 6 | "*.cts" eol=lf 7 | "*.mjs" eol=lf 8 | "*.mts" eol=lf 9 | "*.html" eol=lf 10 | "*.css" eol=lf 11 | "*.vue" eol=lf 12 | "*.json" eol=lf 13 | "*.less" eol=lf 14 | "*.scss" eol=lf 15 | "*.sass" eol=lf 16 | "*.styl" eol=lf 17 | "*.svelte" eol=lf 18 | "*.md" eol=lf 19 | "*.yml" eol=lf 20 | "*.yaml" eol=lf 21 | "*.astro" eol=lf 22 | "*.mdx" eol=lf 23 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/_gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | !.vscode/settings.json 24 | !.vscode/launch.json 25 | .idea 26 | *.suo 27 | *.ntvs* 28 | *.njsproj 29 | *.sln 30 | *.sw? 31 | 32 | .VSCodeCounter 33 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "afzalsayed96.icones", 4 | "antfu.iconify", 5 | "antfu.unocss", 6 | "dbaeumer.vscode-eslint", 7 | "editorconfig.editorconfig", 8 | "esbenp.prettier-vscode", 9 | "lokalise.i18n-ally", 10 | "mhutchie.git-graph", 11 | "mikestead.dotenv", 12 | "naumovs.color-highlight", 13 | "pkief.material-icon-theme", 14 | "sdras.vue-vscode-snippets", 15 | "vue.volar", 16 | "whtouche.vscode-js-console-utils", 17 | "zhuangtongfa.material-theme" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "afzalsayed96.icones", 4 | "antfu.iconify", 5 | "antfu.unocss", 6 | "dbaeumer.vscode-eslint", 7 | "editorconfig.editorconfig", 8 | "esbenp.prettier-vscode", 9 | "lokalise.i18n-ally", 10 | "mhutchie.git-graph", 11 | "mikestead.dotenv", 12 | "naumovs.color-highlight", 13 | "pkief.material-icon-theme", 14 | "sdras.vue-vscode-snippets", 15 | "vue.volar", 16 | "whtouche.vscode-js-console-utils", 17 | "zhuangtongfa.material-theme" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "afzalsayed96.icones", 4 | "antfu.iconify", 5 | "antfu.unocss", 6 | "dbaeumer.vscode-eslint", 7 | "editorconfig.editorconfig", 8 | "esbenp.prettier-vscode", 9 | "lokalise.i18n-ally", 10 | "mhutchie.git-graph", 11 | "mikestead.dotenv", 12 | "naumovs.color-highlight", 13 | "pkief.material-icon-theme", 14 | "sdras.vue-vscode-snippets", 15 | "vue.volar", 16 | "whtouche.vscode-js-console-utils", 17 | "zhuangtongfa.material-theme" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "afzalsayed96.icones", 4 | "antfu.iconify", 5 | "antfu.unocss", 6 | "dbaeumer.vscode-eslint", 7 | "editorconfig.editorconfig", 8 | "esbenp.prettier-vscode", 9 | "lokalise.i18n-ally", 10 | "mhutchie.git-graph", 11 | "mikestead.dotenv", 12 | "naumovs.color-highlight", 13 | "pkief.material-icon-theme", 14 | "sdras.vue-vscode-snippets", 15 | "vue.volar", 16 | "whtouche.vscode-js-console-utils", 17 | "zhuangtongfa.material-theme" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "afzalsayed96.icones", 4 | "antfu.iconify", 5 | "antfu.unocss", 6 | "dbaeumer.vscode-eslint", 7 | "editorconfig.editorconfig", 8 | "esbenp.prettier-vscode", 9 | "lokalise.i18n-ally", 10 | "mhutchie.git-graph", 11 | "mikestead.dotenv", 12 | "naumovs.color-highlight", 13 | "pkief.material-icon-theme", 14 | "sdras.vue-vscode-snippets", 15 | "vue.volar", 16 | "whtouche.vscode-js-console-utils", 17 | "zhuangtongfa.material-theme" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/uno.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig, presetWind3, transformerDirectives, transformerVariantGroup } from 'unocss'; 2 | import type { Theme } from '@unocss/preset-uno'; 3 | import { presetSoybeanUI } from '@soybean-ui/unocss-preset'; 4 | 5 | export default defineConfig({ 6 | content: { 7 | pipeline: { 8 | include: [/\.vue($|\?)/, /.*\/soy-ui.*\.js/] 9 | } 10 | }, 11 | transformers: [transformerDirectives(), transformerVariantGroup()], 12 | presets: [ 13 | presetWind3({ dark: 'class' }), 14 | presetSoybeanUI({ 15 | color: 'default' 16 | }) 17 | ] 18 | }); 19 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/eslint.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@soybeanjs/eslint-config'; 2 | 3 | export default defineConfig( 4 | { vue: true, unocss: true }, 5 | { 6 | rules: { 7 | 'vue/multi-word-component-names': [ 8 | 'warn', 9 | { 10 | ignores: ['index', 'App'] 11 | } 12 | ], 13 | 'vue/component-name-in-template-casing': [ 14 | 'warn', 15 | 'PascalCase', 16 | { 17 | registeredComponentsOnly: false, 18 | ignores: ['/^icon-/'] 19 | } 20 | ], 21 | 'unocss/order-attributify': 'off' 22 | } 23 | } 24 | ); 25 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/typings/components.d.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // @ts-nocheck 3 | // Generated by unplugin-vue-components 4 | // Read more: https://github.com/vuejs/core/pull/3399 5 | // biome-ignore lint: disable 6 | export {} 7 | 8 | /* prettier-ignore */ 9 | declare module 'vue' { 10 | export interface GlobalComponents { 11 | HelloWorld: typeof import('./../components/HelloWorld.vue')['default'] 12 | RouterLink: typeof import('vue-router')['RouterLink'] 13 | RouterView: typeof import('vue-router')['RouterView'] 14 | SButton: typeof import('soy-ui')['SButton'] 15 | SCard: typeof import('soy-ui')['SCard'] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0.0", 3 | "configurations": [ 4 | { 5 | "type": "chrome", 6 | "request": "launch", 7 | "name": "Vue Debugger", 8 | "url": "http://localhost:9527", 9 | "webRoot": "${workspaceFolder}" 10 | }, 11 | { 12 | "type": "node", 13 | "request": "launch", 14 | "name": "TS Debugger", 15 | "runtimeExecutable": "tsx", 16 | "skipFiles": ["/**", "${workspaceFolder}/node_modules/**"], 17 | "program": "${file}", 18 | "console": "integratedTerminal", 19 | "internalConsoleOptions": "neverOpen" 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "jsx": "preserve", 5 | "lib": ["DOM", "ESNext"], 6 | "baseUrl": ".", 7 | "module": "ESNext", 8 | "moduleResolution": "node", 9 | "paths": { 10 | "@/*": ["./src/*"] 11 | }, 12 | "resolveJsonModule": true, 13 | "types": ["node"], 14 | "strict": true, 15 | "strictNullChecks": true, 16 | "noUnusedLocals": true, 17 | "outDir": "./dist", 18 | "allowSyntheticDefaultImports": true, 19 | "esModuleInterop": true, 20 | "forceConsistentCasingInFileNames": true 21 | }, 22 | "include": ["src/**/*", "typings/**/*"], 23 | "exclude": ["node_modules", "dist"] 24 | } 25 | -------------------------------------------------------------------------------- /packages/create-soybean/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "jsx": "preserve", 5 | "lib": ["DOM", "ESNext"], 6 | "baseUrl": ".", 7 | "module": "ESNext", 8 | "moduleResolution": "node", 9 | "paths": { 10 | "@/*": ["./src/*"] 11 | }, 12 | "resolveJsonModule": true, 13 | "types": ["node"], 14 | "strict": true, 15 | "strictNullChecks": true, 16 | "noUnusedLocals": true, 17 | "outDir": "./dist", 18 | "allowSyntheticDefaultImports": true, 19 | "esModuleInterop": true, 20 | "forceConsistentCasingInFileNames": true 21 | }, 22 | "include": ["src/**/*"], 23 | "exclude": ["node_modules", "dist"] 24 | } 25 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/store/plugins/index.ts: -------------------------------------------------------------------------------- 1 | import type { PiniaPluginContext } from 'pinia'; 2 | import { klona } from 'klona/json'; 3 | import { storeIdRecord } from '../id'; 4 | 5 | /** 6 | * The plugin reset the state of the store which is written by setup syntax 7 | * 8 | * @param context 9 | */ 10 | export function resetSetupStore(context: PiniaPluginContext) { 11 | const setupSyntaxIds = Object.values(storeIdRecord); 12 | 13 | if (setupSyntaxIds.includes(context.store.$id)) { 14 | const { $state } = context.store; 15 | 16 | const defaultStore = klona($state); 17 | 18 | context.store.$reset = () => { 19 | context.store.$patch(defaultStore); 20 | }; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "jsx": "preserve", 5 | "jsxImportSource": "vue", 6 | "lib": ["DOM", "ESNext"], 7 | "baseUrl": ".", 8 | "module": "ESNext", 9 | "moduleResolution": "bundler", 10 | "paths": { 11 | "@/*": ["./src/*"] 12 | }, 13 | "resolveJsonModule": true, 14 | "types": ["node", "vite/client"], 15 | "strict": true, 16 | "strictNullChecks": true, 17 | "noUnusedLocals": true, 18 | "outDir": "./dist", 19 | "allowSyntheticDefaultImports": true, 20 | "esModuleInterop": true, 21 | "forceConsistentCasingInFileNames": true, 22 | "isolatedModules": true 23 | }, 24 | "exclude": ["node_modules", "dist"] 25 | } 26 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/src/router/index.ts: -------------------------------------------------------------------------------- 1 | import type { App } from 'vue'; 2 | import { createRouter, createWebHistory } from 'vue-router'; 3 | import type { Router } from 'vue-router'; 4 | import { routes } from './_generated/routes'; 5 | import { transformToVueRoutes } from './_generated/transformer'; 6 | import { layouts, views } from './_generated/imports'; 7 | 8 | export const router = createRouter({ 9 | history: createWebHistory(), 10 | routes: transformToVueRoutes(routes, layouts, views) 11 | }); 12 | 13 | /** 14 | * Router guard 15 | * 16 | * @param router - Router instance 17 | */ 18 | function createRouterGuard(_router: Router) {} 19 | 20 | /** Setup Vue Router */ 21 | export async function setupRouter(app: App) { 22 | app.use(router); 23 | createRouterGuard(router); 24 | await router.isReady(); 25 | } 26 | -------------------------------------------------------------------------------- /src/types/index.ts: -------------------------------------------------------------------------------- 1 | import type { ChangelogOption } from '@soybeanjs/changelog'; 2 | 3 | export interface CliOption { 4 | /** The project root directory */ 5 | cwd: string; 6 | /** 7 | * Cleanup dirs 8 | * 9 | * Glob pattern syntax {@link https://github.com/isaacs/minimatch} 10 | * 11 | * @default 12 | * ```json 13 | * ["** /dist", "** /pnpm-lock.yaml", "** /node_modules", "!node_modules/**"] 14 | * ``` 15 | */ 16 | cleanupDirs: string[]; 17 | /** 18 | * Npm-check-updates command args 19 | * 20 | * @default ['--deep', '-u'] 21 | */ 22 | ncuCommandArgs: string[]; 23 | /** 24 | * Options of generate changelog 25 | * 26 | * @link https://github.com/soybeanjs/changelog 27 | */ 28 | changelogOptions: Partial; 29 | /** The ignore pattern list of git commit verify */ 30 | gitCommitVerifyIgnores: RegExp[]; 31 | } 32 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "jsx": "preserve", 5 | "jsxImportSource": "vue", 6 | "lib": ["DOM", "ESNext"], 7 | "baseUrl": ".", 8 | "module": "ESNext", 9 | "moduleResolution": "bundler", 10 | "paths": { 11 | "@/*": ["./src/*"] 12 | }, 13 | "resolveJsonModule": true, 14 | "types": ["node"], 15 | "strict": true, 16 | "strictNullChecks": true, 17 | "noUnusedLocals": true, 18 | "declaration": true, 19 | "emitDeclarationOnly": true, 20 | "outDir": "./dist", 21 | "allowSyntheticDefaultImports": true, 22 | "esModuleInterop": true, 23 | "forceConsistentCasingInFileNames": true, 24 | "isolatedModules": true, 25 | "verbatimModuleSyntax": true, 26 | "skipLibCheck": true 27 | }, 28 | "include": ["src/**/*"], 29 | "exclude": ["node_modules", "dist"] 30 | } 31 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "jsx": "preserve", 5 | "jsxImportSource": "vue", 6 | "lib": ["DOM", "ESNext"], 7 | "baseUrl": ".", 8 | "module": "ESNext", 9 | "moduleResolution": "bundler", 10 | "paths": { 11 | "@/*": ["./src/*"] 12 | }, 13 | "resolveJsonModule": true, 14 | "types": ["node"], 15 | "strict": true, 16 | "strictNullChecks": true, 17 | "noUnusedLocals": true, 18 | "declaration": true, 19 | "emitDeclarationOnly": true, 20 | "outDir": "./dist", 21 | "allowSyntheticDefaultImports": true, 22 | "esModuleInterop": true, 23 | "forceConsistentCasingInFileNames": true, 24 | "isolatedModules": true, 25 | "verbatimModuleSyntax": true, 26 | "skipLibCheck": true 27 | }, 28 | "include": ["src/**/*"], 29 | "exclude": ["node_modules", "dist"] 30 | } 31 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "jsx": "preserve", 5 | "jsxImportSource": "vue", 6 | "lib": ["DOM", "ESNext"], 7 | "baseUrl": ".", 8 | "module": "ESNext", 9 | "moduleResolution": "bundler", 10 | "paths": { 11 | "@/*": ["./src/*"] 12 | }, 13 | "resolveJsonModule": true, 14 | "types": ["node"], 15 | "strict": true, 16 | "strictNullChecks": true, 17 | "noUnusedLocals": true, 18 | "declaration": true, 19 | "emitDeclarationOnly": true, 20 | "outDir": "./dist", 21 | "allowSyntheticDefaultImports": true, 22 | "esModuleInterop": true, 23 | "forceConsistentCasingInFileNames": true, 24 | "isolatedModules": true, 25 | "verbatimModuleSyntax": true, 26 | "skipLibCheck": true 27 | }, 28 | "include": ["src/**/*"], 29 | "exclude": ["node_modules", "dist"] 30 | } 31 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { URL, fileURLToPath } from 'node:url'; 2 | import { defineConfig } from 'vite'; 3 | import Vue from '@vitejs/plugin-vue'; 4 | import VueJsx from '@vitejs/plugin-vue-jsx'; 5 | import VueDevtools from 'vite-plugin-vue-devtools'; 6 | import Unocss from 'unocss/vite'; 7 | import Components from 'unplugin-vue-components/vite'; 8 | import SoybeanUIResolver from 'soy-ui/resolver'; 9 | import ElegantRouter from 'elegant-router/vite'; 10 | 11 | export default defineConfig({ 12 | resolve: { 13 | alias: { 14 | '@': fileURLToPath(new URL('./src', import.meta.url)) 15 | } 16 | }, 17 | plugins: [ 18 | Vue(), 19 | VueJsx(), 20 | VueDevtools(), 21 | Unocss(), 22 | Components({ 23 | dts: 'src/typings/components.d.ts', 24 | types: [{ from: 'vue-router', names: ['RouterLink', 'RouterView'] }], 25 | resolvers: [SoybeanUIResolver()] 26 | }), 27 | ElegantRouter(), 28 | ] 29 | }); 30 | -------------------------------------------------------------------------------- /packages/create-soybean/template-pnpm-monorepo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "template-pnpm-monorepo", 3 | "type": "module", 4 | "version": "0.0.0", 5 | "private": true, 6 | "packageManager": "pnpm@10.20.0", 7 | "scripts": { 8 | "cleanup": "soy cleanup", 9 | "commit": "soy git-commit", 10 | "lint": "eslint . --fix", 11 | "prepare": "simple-git-hooks", 12 | "release": "soy release", 13 | "typecheck": "tsc --noEmit --skipLibCheck", 14 | "update-pkg": "soy ncu" 15 | }, 16 | "dependencies": {}, 17 | "devDependencies": { 18 | "@soybeanjs/cli": "1.4.1", 19 | "@soybeanjs/eslint-config": "1.7.1", 20 | "eslint": "9.38.0", 21 | "lint-staged": "16.2.6", 22 | "simple-git-hooks": "2.13.1", 23 | "tsx": "4.20.6", 24 | "typescript": "5.9.3" 25 | }, 26 | "simple-git-hooks": { 27 | "commit-msg": "pnpm soy git-commit-verify", 28 | "pre-commit": "pnpm typecheck && pnpm lint-staged" 29 | }, 30 | "lint-staged": { 31 | "*": "eslint --fix" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/src/demo-pkg.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /scripts/release.ts: -------------------------------------------------------------------------------- 1 | import process from 'node:process'; 2 | import path from 'node:path'; 3 | import { readFile, writeFile } from 'node:fs/promises'; 4 | import { globSync } from 'tinyglobby'; 5 | 6 | async function updateTemplateVersion() { 7 | const cwd = process.cwd(); 8 | 9 | const globs = globSync(path.join(cwd, 'packages/create-soybean/template-*/package.json'), { 10 | onlyFiles: true 11 | }); 12 | 13 | const pkgJson = await readFile(path.join(cwd, 'package.json'), 'utf-8'); 14 | 15 | const { version: newVersion } = JSON.parse(pkgJson); 16 | 17 | const pkgVersionReg = /"version": "\d+\.\d+\.\d+(-(beta|alpha)\.\d+)?"/; 18 | 19 | const soybeanJsCliVersionReg = /"@soybeanjs\/cli": "\d+\.\d+\.\d+(-(beta|alpha)\.\d+)?"/; 20 | 21 | for await (const glob of globs) { 22 | const json = await readFile(glob, 'utf-8'); 23 | 24 | const newPkgJson = json 25 | .replace(pkgVersionReg, `"version": "0.0.0"`) 26 | .replace(soybeanJsCliVersionReg, `"@soybeanjs/cli": "${newVersion}"`); 27 | 28 | await writeFile(glob, newPkgJson); 29 | } 30 | } 31 | 32 | updateTemplateVersion(); 33 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/playground/src/style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; 3 | line-height: 1.5; 4 | font-weight: 400; 5 | 6 | color-scheme: light dark; 7 | color: rgba(255, 255, 255, 0.87); 8 | background-color: #242424; 9 | 10 | font-synthesis: none; 11 | text-rendering: optimizeLegibility; 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | } 15 | 16 | a { 17 | font-weight: 500; 18 | color: #646cff; 19 | text-decoration: inherit; 20 | } 21 | a:hover { 22 | color: #535bf2; 23 | } 24 | 25 | body { 26 | margin: 0; 27 | display: flex; 28 | place-items: center; 29 | min-width: 320px; 30 | min-height: 100vh; 31 | } 32 | 33 | h1 { 34 | font-size: 3.2em; 35 | line-height: 1.1; 36 | } 37 | 38 | #app { 39 | max-width: 1280px; 40 | margin: 0 auto; 41 | padding: 2rem; 42 | text-align: center; 43 | } 44 | 45 | @media (prefers-color-scheme: light) { 46 | :root { 47 | color: #213547; 48 | background-color: #ffffff; 49 | } 50 | a:hover { 51 | color: #747bff; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - "v*" 7 | 8 | jobs: 9 | release: 10 | permissions: 11 | id-token: write 12 | contents: write 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v3 16 | with: 17 | fetch-depth: 0 18 | 19 | - name: Install pnpm 20 | uses: pnpm/action-setup@v2 21 | 22 | - name: Set node 23 | uses: actions/setup-node@v3 24 | with: 25 | node-version: lts/* 26 | cache: pnpm 27 | registry-url: "https://registry.npmjs.org" 28 | 29 | - run: npx githublogen 30 | env: 31 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} 32 | 33 | - name: Install Dependencies 34 | run: pnpm install --no-frozen-lockfile 35 | 36 | - name: PNPM build 37 | run: pnpm run build 38 | 39 | - name: Publish to NPM 40 | run: pnpm -r publish --access public --no-git-checks 41 | env: 42 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} 43 | NPM_CONFIG_PROVENANCE: true 44 | 45 | - name: Sync Npmmirror 46 | run: npx syncmirror -s @soybeanjs/cli,create-soybean 47 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - "v*" 7 | 8 | jobs: 9 | release: 10 | permissions: 11 | id-token: write 12 | contents: write 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v3 16 | with: 17 | fetch-depth: 0 18 | 19 | - name: Install pnpm 20 | uses: pnpm/action-setup@v2 21 | 22 | - name: Set node 23 | uses: actions/setup-node@v3 24 | with: 25 | node-version: lts/* 26 | cache: pnpm 27 | registry-url: "https://registry.npmjs.org" 28 | 29 | - run: npx githublogen 30 | env: 31 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} 32 | 33 | - name: Install Dependencies 34 | run: pnpm install --no-frozen-lockfile 35 | 36 | - name: PNPM build 37 | run: pnpm run build 38 | 39 | - name: Publish to NPM 40 | run: pnpm -r publish --access public --no-git-checks 41 | env: 42 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} 43 | NPM_CONFIG_PROVENANCE: true 44 | 45 | - name: Sync Npmmirror 46 | run: npx syncmirror 47 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - "v*" 7 | 8 | jobs: 9 | release: 10 | permissions: 11 | id-token: write 12 | contents: write 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v3 16 | with: 17 | fetch-depth: 0 18 | 19 | - name: Install pnpm 20 | uses: pnpm/action-setup@v2 21 | 22 | - name: Set node 23 | uses: actions/setup-node@v3 24 | with: 25 | node-version: lts/* 26 | cache: pnpm 27 | registry-url: "https://registry.npmjs.org" 28 | 29 | - run: npx githublogen 30 | env: 31 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} 32 | 33 | - name: Install Dependencies 34 | run: pnpm install --no-frozen-lockfile 35 | 36 | - name: PNPM build 37 | run: pnpm run build 38 | 39 | - name: Publish to NPM 40 | run: pnpm -r publish --access public --no-git-checks 41 | env: 42 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} 43 | NPM_CONFIG_PROVENANCE: true 44 | 45 | - name: Sync Npmmirror 46 | run: npx syncmirror 47 | -------------------------------------------------------------------------------- /src/config/index.ts: -------------------------------------------------------------------------------- 1 | import process from 'node:process'; 2 | import { loadConfig } from 'c12'; 3 | import type { CliOption } from '../types'; 4 | 5 | const defaultOptions: CliOption = { 6 | cwd: process.cwd(), 7 | cleanupDirs: [ 8 | '**/dist', 9 | '**/package-lock.json', 10 | '**/yarn.lock', 11 | '**/pnpm-lock.yaml', 12 | '**/node_modules', 13 | '!node_modules/**' 14 | ], 15 | ncuCommandArgs: ['--deep', '-u'], 16 | changelogOptions: {}, 17 | gitCommitVerifyIgnores: [ 18 | /^((Merge pull request)|(Merge (.*?) into (.*?)|(Merge branch (.*?)))(?:\r?\n)*$)/m, 19 | /^(Merge tag (.*?))(?:\r?\n)*$/m, 20 | /^(R|r)evert (.*)/, 21 | /^(amend|fixup|squash)!/, 22 | /^(Merged (.*?)(in|into) (.*)|Merged PR (.*): (.*))/, 23 | /^Merge remote-tracking branch(\s*)(.*)/, 24 | /^Automatic merge(.*)/, 25 | /^Auto-merged (.*?) into (.*)/ 26 | ] 27 | }; 28 | 29 | export async function loadCliOptions(overrides?: Partial, cwd = process.cwd()) { 30 | const { config } = await loadConfig>({ 31 | name: 'soybean', 32 | defaults: defaultOptions, 33 | overrides, 34 | cwd, 35 | packageJson: true 36 | }); 37 | 38 | return config as CliOption; 39 | } 40 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # @soybeanjs/cli 2 | 3 | SoybeanJS 的命令行工具 4 | 5 | ## 用法 6 | 7 | ### 安装 8 | 9 | ```bash 10 | pnpm i -D @soybeanjs/cli 11 | ``` 12 | 13 | ### 使用 14 | 15 | 示例: 16 | 17 | ```bash 18 | pnpm soy -h 19 | ``` 20 | 21 | ## 命令介绍 22 | 23 | | 命令 | 作用 | 24 | | --------------------- | ------------------------------------------------------------------ | 25 | | help(-h) | 查看全部命令用法 | 26 | | git-commit | 生成符合 Angular 规范的 git 提交信息 (在提交信息添加前缀`!`可以表示破坏性更新的提交) | 27 | | git-commit-verify | 校验 git 的提交信息是否符合 Angular 规范 | 28 | | cleanup | 清空依赖和构建产物 | 29 | | ncu | 命令 npm-check-updates, 升级依赖 | 30 | | changelog | 根据两次 tag 生成 changelog (--total: 根据所有 tag 生成 changelog) | 31 | | release | 发布:更新版本号、生成 changelog、提交代码 | 32 | 33 | ## 更多自定义配置 34 | 35 | - 在项目根目录新建 soybean-config.ts 36 | 37 | - 导入 defineConfig 函数 38 | 39 | ```ts 40 | import { defineConfig } from '@soybeanjs/cli'; 41 | 42 | export default defineConfig({ 43 | // options 44 | }); 45 | ``` 46 | 47 | - 配置参考 48 | 49 | ```ts 50 | import type { CliOption } from '@soybeanjs/cli'; 51 | ``` 52 | -------------------------------------------------------------------------------- /packages/create-soybean/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "create-soybean", 3 | "type": "module", 4 | "version": "1.4.1", 5 | "description": "SoybeanJS's command line to create different project templates", 6 | "author": { 7 | "name": "Soybean", 8 | "email": "soybeanjs@outlook.com", 9 | "url": "https://github.com/soybeanjs" 10 | }, 11 | "license": "MIT", 12 | "homepage": "https://github.com/soybeanjs/cli/tree/main/packages/create-soybean", 13 | "repository": { 14 | "url": "https://github.com/soybeanjs/cli.git" 15 | }, 16 | "bugs": { 17 | "url": "https://github.com/soybeanjs/cli/issues" 18 | }, 19 | "publishConfig": { 20 | "registry": "https://registry.npmjs.org/", 21 | "bin": { 22 | "create-soybean": "dist/index.js" 23 | } 24 | }, 25 | "bin": { 26 | "create-soybean": "./src/bin.js" 27 | }, 28 | "files": ["dist", "template-*"], 29 | "scripts": { 30 | "build": "pnpm typecheck && pnpm build-only", 31 | "build-only": "tsdown", 32 | "publish-pkg": "pnpm publish --access public --no-git-checks", 33 | "typecheck": "tsc --noEmit --skipLibCheck" 34 | }, 35 | "dependencies": { 36 | "consola": "3.4.2", 37 | "kolorist": "1.8.0", 38 | "minimist": "1.2.8", 39 | "prompts": "2.4.2" 40 | }, 41 | "devDependencies": { 42 | "@types/minimist": "1.2.5", 43 | "@types/prompts": "2.4.9", 44 | "tsdown": "0.15.11", 45 | "typescript": "5.9.3" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "template-vue", 3 | "type": "module", 4 | "version": "0.0.0", 5 | "private": true, 6 | "packageManager": "pnpm@10.20.0", 7 | "scripts": { 8 | "build": "pnpm typecheck && pnpm build-only", 9 | "build-only": "vite build", 10 | "cleanup": "soy cleanup", 11 | "commit": "soy git-commit", 12 | "dev": "vite", 13 | "lint": "eslint . --fix", 14 | "prepare": "simple-git-hooks", 15 | "preview": "vite preview", 16 | "typecheck": "vue-tsc --noEmit --skipLibCheck", 17 | "update-pkg": "soy ncu" 18 | }, 19 | "dependencies": { 20 | "@unocss/reset": "66.5.4", 21 | "klona": "2.0.6", 22 | "pinia": "3.0.3", 23 | "soy-ui": "0.0.2-beta.5", 24 | "vue": "3.5.22", 25 | "vue-router": "4.6.3" 26 | }, 27 | "devDependencies": { 28 | "@soybean-ui/unocss-preset": "0.0.2-beta.5", 29 | "@soybeanjs/cli": "1.4.1", 30 | "@soybeanjs/eslint-config": "1.7.1", 31 | "@types/node": "24.9.2", 32 | "@unocss/eslint-config": "66.5.4", 33 | "@vitejs/plugin-vue": "6.0.1", 34 | "@vitejs/plugin-vue-jsx": "5.1.1", 35 | "elegant-router": "1.0.4", 36 | "eslint": "9.38.0", 37 | "eslint-plugin-vue": "10.5.1", 38 | "lint-staged": "16.2.6", 39 | "simple-git-hooks": "2.13.1", 40 | "typescript": "5.9.3", 41 | "unocss": "66.5.4", 42 | "unplugin-vue-components": "30.0.0", 43 | "vite": "7.1.12", 44 | "vite-plugin-vue-devtools": "8.0.3", 45 | "vue-eslint-parser": "10.2.0", 46 | "vue-tsc": "3.1.2" 47 | }, 48 | "simple-git-hooks": { 49 | "commit-msg": "pnpm soy git-commit-verify", 50 | "pre-commit": "pnpm typecheck && pnpm lint-staged" 51 | }, 52 | "lint-staged": { 53 | "*": "eslint --fix" 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /packages/create-soybean/template-tsdown/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "template-tsdown", 3 | "type": "module", 4 | "version": "0.0.0", 5 | "private": true, 6 | "packageManager": "pnpm@10.20.0", 7 | "publishConfig": { 8 | "registry": "https://registry.npmjs.org/" 9 | }, 10 | "sideEffects": false, 11 | "exports": { 12 | ".": { 13 | "types": "./dist/index.d.ts", 14 | "import": "./dist/index.mjs", 15 | "require": "./dist/index.cjs" 16 | } 17 | }, 18 | "main": "./dist/index.cjs", 19 | "module": "./dist/index.mjs", 20 | "types": "./dist/index.d.ts", 21 | "files": ["dist"], 22 | "scripts": { 23 | "build": "tsdown", 24 | "cleanup": "soy cleanup", 25 | "commit": "soy git-commit", 26 | "dev": "tsup --watch", 27 | "lint": "eslint . --fix", 28 | "prepare": "simple-git-hooks", 29 | "publish-pkg": "pnpm publish --access public", 30 | "release": "soy release", 31 | "typecheck": "tsc --noEmit --skipLibCheck", 32 | "update-pkg": "soy ncu" 33 | }, 34 | "dependencies": { 35 | "cli-progress": "3.12.0", 36 | "consola": "3.4.2", 37 | "dayjs": "1.11.18", 38 | "execa": "9.6.0", 39 | "kolorist": "1.8.0", 40 | "ofetch": "1.5.0" 41 | }, 42 | "devDependencies": { 43 | "@soybeanjs/cli": "1.4.1", 44 | "@soybeanjs/eslint-config": "1.7.1", 45 | "@types/cli-progress": "3.11.6", 46 | "@types/node": "24.9.2", 47 | "eslint": "9.38.0", 48 | "lint-staged": "16.2.6", 49 | "simple-git-hooks": "2.13.1", 50 | "tsdown": "0.15.11", 51 | "tsx": "4.20.6", 52 | "typescript": "5.9.3" 53 | }, 54 | "simple-git-hooks": { 55 | "commit-msg": "pnpm soy git-commit-verify", 56 | "pre-commit": "pnpm typecheck && pnpm lint-staged" 57 | }, 58 | "lint-staged": { 59 | "*": "eslint --fix" 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /packages/create-soybean/src/shared.ts: -------------------------------------------------------------------------------- 1 | import { copyFileSync, existsSync, mkdirSync, readdirSync, rmSync, statSync } from 'node:fs'; 2 | import path from 'node:path'; 3 | 4 | export function formatTargetDir(targetDir?: string) { 5 | return targetDir?.trim()?.replace(/\/+$/g, ''); 6 | } 7 | 8 | export function isPathEmpty($path: string) { 9 | const files = readdirSync($path); 10 | return files.length === 0 || (files.length === 1 && files[0] === '.git'); 11 | } 12 | 13 | export function isValidPackageName(projectName: string) { 14 | return /^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(projectName); 15 | } 16 | 17 | export function toValidPackageName(projectName: string) { 18 | return projectName 19 | .trim() 20 | .toLowerCase() 21 | .replace(/\s+/g, '-') 22 | .replace(/^[._]/, '') 23 | .replace(/[^a-z\d\-~]+/g, '-'); 24 | } 25 | 26 | export function emptyDir(dir: string) { 27 | const isExist = existsSync(dir); 28 | 29 | if (!isExist) { 30 | return; 31 | } 32 | 33 | const files = readdirSync(dir); 34 | 35 | for (const file of files) { 36 | if (file !== '.git') { 37 | const filePath = path.resolve(dir, file); 38 | 39 | rmSync(filePath, { recursive: true, force: true }); 40 | } 41 | } 42 | } 43 | 44 | function copyDir(srcDir: string, destDir: string) { 45 | mkdirSync(destDir, { recursive: true }); 46 | 47 | const files = readdirSync(srcDir); 48 | 49 | for (const file of files) { 50 | const srcFile = path.resolve(srcDir, file); 51 | const destFile = path.resolve(destDir, file); 52 | 53 | copy(srcFile, destFile); 54 | } 55 | } 56 | 57 | export function copy(src: string, dest: string) { 58 | const stat = statSync(src); 59 | 60 | if (stat.isDirectory()) { 61 | copyDir(src, dest); 62 | } else { 63 | copyFileSync(src, dest); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /packages/create-soybean/template-vue-tsdown/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "template-vue-tsdown", 3 | "type": "module", 4 | "version": "0.0.0", 5 | "private": true, 6 | "packageManager": "pnpm@10.20.0", 7 | "publishConfig": { 8 | "registry": "https://registry.npmjs.org/" 9 | }, 10 | "sideEffects": false, 11 | "exports": { 12 | ".": { 13 | "types": "./dist/index.d.ts", 14 | "import": "./dist/index.js", 15 | "require": "./dist/index.js" 16 | } 17 | }, 18 | "main": "./dist/index.js", 19 | "module": "./dist/index.js", 20 | "types": "./dist/index.d.ts", 21 | "files": ["dist"], 22 | "scripts": { 23 | "build": "tsdown", 24 | "cleanup": "soy cleanup", 25 | "commit": "soy git-commit", 26 | "dev": "tsdown --watch", 27 | "lint": "eslint . --fix", 28 | "play": "vite", 29 | "prepare": "simple-git-hooks", 30 | "publish-pkg": "pnpm publish --access public", 31 | "release": "soy release", 32 | "test": "vitest", 33 | "typecheck": "tsc --noEmit --skipLibCheck", 34 | "update-pkg": "soy ncu" 35 | }, 36 | "dependencies": {}, 37 | "devDependencies": { 38 | "@soybeanjs/cli": "1.4.1", 39 | "@soybeanjs/eslint-config": "1.7.1", 40 | "@types/node": "24.9.2", 41 | "@vue/test-utils": "2.4.6", 42 | "eslint": "9.38.0", 43 | "eslint-plugin-vue": "10.5.1", 44 | "happy-dom": "20.0.10", 45 | "lint-staged": "16.2.6", 46 | "simple-git-hooks": "2.13.1", 47 | "tsdown": "0.15.11", 48 | "tsx": "4.20.6", 49 | "typescript": "5.9.3", 50 | "unplugin-vue": "7.0.3", 51 | "unplugin-vue-jsx": "0.8.1", 52 | "vite": "7.1.12", 53 | "vitest": "4.0.5", 54 | "vue": "3.5.22", 55 | "vue-eslint-parser": "10.2.0", 56 | "vue-tsc": "3.1.2" 57 | }, 58 | "simple-git-hooks": { 59 | "commit-msg": "pnpm soy git-commit-verify", 60 | "pre-commit": "pnpm typecheck && pnpm lint-staged" 61 | }, 62 | "lint-staged": { 63 | "*": "eslint --fix" 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/command/git-commit.ts: -------------------------------------------------------------------------------- 1 | import path from 'node:path'; 2 | import { readFileSync } from 'node:fs'; 3 | import enquirer from 'enquirer'; 4 | import { execCommand } from '../shared'; 5 | import { locales } from '../locales'; 6 | import type { Lang } from '../locales'; 7 | 8 | interface PromptObject { 9 | types: string; 10 | scopes: string; 11 | description: string; 12 | } 13 | 14 | /** 15 | * Git commit with Conventional Commits standard 16 | * 17 | * @param lang 18 | */ 19 | export async function gitCommit(lang: Lang = 'en-us') { 20 | const { gitCommitMessages, gitCommitTypes, gitCommitScopes } = locales[lang]; 21 | 22 | const typesChoices = gitCommitTypes.map(([value, msg]) => { 23 | const nameWithSuffix = `${value}:`; 24 | 25 | const message = `${nameWithSuffix.padEnd(12)}${msg}`; 26 | 27 | return { 28 | name: value, 29 | message 30 | }; 31 | }); 32 | 33 | const scopesChoices = gitCommitScopes.map(([value, msg]) => ({ 34 | name: value, 35 | message: `${value.padEnd(30)} (${msg})` 36 | })); 37 | 38 | const result = await enquirer.prompt([ 39 | { 40 | name: 'types', 41 | type: 'select', 42 | message: gitCommitMessages.types, 43 | choices: typesChoices 44 | }, 45 | { 46 | name: 'scopes', 47 | type: 'select', 48 | message: gitCommitMessages.scopes, 49 | choices: scopesChoices 50 | }, 51 | { 52 | name: 'description', 53 | type: 'text', 54 | message: gitCommitMessages.description 55 | } 56 | ]); 57 | 58 | const breaking = result.description.startsWith('!') ? '!' : ''; 59 | 60 | const description = result.description.replace(/^!/, '').trim(); 61 | 62 | const commitMsg = `${result.types}(${result.scopes})${breaking}: ${description}`; 63 | 64 | await execCommand('git', ['commit', '-m', commitMsg], { stdio: 'inherit' }); 65 | } 66 | 67 | /** Git commit message verify */ 68 | export async function gitCommitVerify(lang: Lang = 'en-us', ignores: RegExp[] = []) { 69 | const gitPath = await execCommand('git', ['rev-parse', '--show-toplevel']); 70 | 71 | const gitMsgPath = path.join(gitPath, '.git', 'COMMIT_EDITMSG'); 72 | 73 | const commitMsg = readFileSync(gitMsgPath, 'utf8').trim(); 74 | 75 | if (ignores.some(regExp => regExp.test(commitMsg))) return; 76 | 77 | const REG_EXP = /(?[a-z]+)(?:\((?.+)\))?(?!)?: (?.+)/i; 78 | 79 | if (!REG_EXP.test(commitMsg)) { 80 | const errorMsg = locales[lang].gitCommitVerify; 81 | 82 | throw new Error(errorMsg); 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@soybeanjs/cli", 3 | "type": "module", 4 | "version": "1.4.1", 5 | "packageManager": "pnpm@10.20.0", 6 | "description": "SoybeanJS's command line tools", 7 | "author": { 8 | "name": "Soybean", 9 | "email": "soybeanjs@outlook.com", 10 | "url": "https://github.com/soybeanjs" 11 | }, 12 | "license": "MIT", 13 | "homepage": "https://github.com/soybeanjs/cli", 14 | "repository": { 15 | "url": "https://github.com/soybeanjs/cli.git" 16 | }, 17 | "bugs": { 18 | "url": "https://github.com/soybeanjs/cli/issues" 19 | }, 20 | "publishConfig": { 21 | "registry": "https://registry.npmjs.org/", 22 | "bin": { 23 | "soybean": "dist/index.js", 24 | "soy": "dist/index.js" 25 | } 26 | }, 27 | "bin": { 28 | "soybean": "./src/bin.js", 29 | "soy": "./src/bin.js" 30 | }, 31 | "exports": { 32 | ".": { 33 | "types": "./dist/index.d.ts", 34 | "import": "./dist/index.js", 35 | "require": "./dist/index.js" 36 | } 37 | }, 38 | "main": "./dist/index.js", 39 | "module": "./dist/index.js", 40 | "types": "./dist/index.d.ts", 41 | "files": ["dist"], 42 | "scripts": { 43 | "build": "tsdown && pnpm build-pkg", 44 | "build-pkg": "pnpm -r --filter='./packages/*' run build", 45 | "cleanup": "soy cleanup", 46 | "commit": "soy git-commit", 47 | "commit:zh": "soy git-commit -l=zh-cn", 48 | "lint": "eslint . --fix", 49 | "prepare": "simple-git-hooks", 50 | "publish-pkg": "pnpm -r publish --access public", 51 | "release": "soy release -e 'pnpm release-execute'", 52 | "release-execute": "tsx ./scripts/release.ts && pnpm soy changelog", 53 | "stub": "pnpm -r run stub", 54 | "typecheck": "tsc --noEmit --skipLibCheck", 55 | "update-pkg": "soy update-pkg" 56 | }, 57 | "dependencies": { 58 | "@soybeanjs/changelog": "0.4.0-beta.1", 59 | "bumpp": "10.3.1", 60 | "c12": "3.3.1", 61 | "cac": "6.7.14", 62 | "consola": "3.4.2", 63 | "enquirer": "2.4.1", 64 | "execa": "9.6.0", 65 | "kolorist": "1.8.0", 66 | "npm-check-updates": "19.1.2", 67 | "rimraf": "6.0.1", 68 | "tinyglobby": "0.2.15" 69 | }, 70 | "devDependencies": { 71 | "@soybeanjs/cli": "link:", 72 | "@soybeanjs/eslint-config": "1.7.1", 73 | "@types/node": "24.9.2", 74 | "eslint": "9.38.0", 75 | "eslint-plugin-vue": "10.5.1", 76 | "lint-staged": "16.2.6", 77 | "simple-git-hooks": "2.13.1", 78 | "tsdown": "0.15.11", 79 | "tsx": "4.20.6", 80 | "typescript": "5.9.3", 81 | "vue-eslint-parser": "10.2.0" 82 | }, 83 | "simple-git-hooks": { 84 | "commit-msg": "pnpm soy git-commit-verify", 85 | "pre-commit": "pnpm typecheck && pnpm lint-staged" 86 | }, 87 | "lint-staged": { 88 | "*": "eslint --fix" 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /src/locales/index.ts: -------------------------------------------------------------------------------- 1 | import { bgRed, green, red, yellow } from 'kolorist'; 2 | 3 | export type Lang = 'zh-cn' | 'en-us'; 4 | 5 | export const locales = { 6 | 'zh-cn': { 7 | gitCommitMessages: { 8 | types: '请选择提交类型', 9 | scopes: '请选择提交范围', 10 | description: `请输入描述信息(${yellow('!')}开头表示破坏性改动` 11 | }, 12 | gitCommitTypes: [ 13 | ['feat', '新功能'], 14 | ['fix', '修复Bug'], 15 | ['docs', '只涉及文档更新'], 16 | ['style', '修改代码风格,不影响代码含义的变更'], 17 | ['refactor', '代码重构,既不修复 bug 也不添加功能的代码变更'], 18 | ['perf', '可提高性能的代码更改'], 19 | ['optimize', '优化代码质量的代码更改'], 20 | ['test', '添加缺失的测试或更正现有测试'], 21 | ['build', '影响构建系统或外部依赖项的更改'], 22 | ['ci', '对 CI 配置文件和脚本的更改'], 23 | ['chore', '没有修改src或测试文件的其他变更'], 24 | ['revert', '还原先前的提交'] 25 | ] as [string, string][], 26 | gitCommitScopes: [ 27 | ['projects', '项目'], 28 | ['packages', '包'], 29 | ['components', '组件'], 30 | ['hooks', '钩子函数'], 31 | ['utils', '工具函数'], 32 | ['types', 'TS类型声明'], 33 | ['styles', '代码风格'], 34 | ['deps', '项目依赖'], 35 | ['release', '发布项目新版本'], 36 | ['other', '其他的变更'] 37 | ] as [string, string][], 38 | gitCommitVerify: `${bgRed(' 错误 ')} ${red('git 提交信息必须符合 Conventional Commits 标准!')}\n\n${green( 39 | '推荐使用命令 `pnpm commit` 生成符合 Conventional Commits 标准的提交信息。\n获取有关 Conventional Commits 的更多信息,请访问此链接: https://conventionalcommits.org' 40 | )}` 41 | }, 42 | 'en-us': { 43 | gitCommitMessages: { 44 | types: 'Please select a type', 45 | scopes: 'Please select a scope', 46 | description: `Please enter a description (add prefix ${yellow('!')} to indicate breaking change)` 47 | }, 48 | gitCommitTypes: [ 49 | ['feat', 'A new feature'], 50 | ['fix', 'A bug fix'], 51 | ['docs', 'Documentation only changes'], 52 | ['style', 'Changes that do not affect the meaning of the code'], 53 | ['refactor', 'A code change that neither fixes a bug nor adds a feature'], 54 | ['perf', 'A code change that improves performance'], 55 | ['optimize', 'A code change that optimizes code quality'], 56 | ['test', 'Adding missing tests or correcting existing tests'], 57 | ['build', 'Changes that affect the build system or external dependencies'], 58 | ['ci', 'Changes to our CI configuration files and scripts'], 59 | ['chore', "Other changes that don't modify src or test files"], 60 | ['revert', 'Reverts a previous commit'] 61 | ] as [string, string][], 62 | gitCommitScopes: [ 63 | ['projects', 'project'], 64 | ['packages', 'packages'], 65 | ['components', 'components'], 66 | ['hooks', 'hook functions'], 67 | ['utils', 'utils functions'], 68 | ['types', 'TS declaration'], 69 | ['styles', 'style'], 70 | ['deps', 'project dependencies'], 71 | ['release', 'release project'], 72 | ['other', 'other changes'] 73 | ] as [string, string][], 74 | gitCommitVerify: `${bgRed(' ERROR ')} ${red('git commit message must match the Conventional Commits standard!')}\n\n${green( 75 | 'Recommended to use the command `pnpm commit` to generate Conventional Commits compliant commit information.\nGet more info about Conventional Commits, follow this link: https://conventionalcommits.org' 76 | )}` 77 | } 78 | } satisfies Record>; 79 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import cac from 'cac'; 3 | import { version } from '../package.json'; 4 | import { cleanup, genChangelog, gitCommit, gitCommitVerify, ncu, release } from './command'; 5 | import { loadCliOptions } from './config'; 6 | import type { CliOption } from './types'; 7 | import type { Lang } from './locales'; 8 | 9 | type Command = 'cleanup' | 'ncu' | 'update-pkg' | 'git-commit' | 'git-commit-verify' | 'changelog' | 'release'; 10 | 11 | type CommandAction = (args?: A) => Promise | void; 12 | 13 | type CommandWithAction = Record }>; 14 | 15 | interface CommandArg { 16 | /** Execute additional command after bumping and before git commit. Defaults to 'npx soy changelog' */ 17 | execute?: string; 18 | /** Indicates whether to push the git commit and tag. Defaults to true */ 19 | push?: boolean; 20 | /** Generate changelog by total tags */ 21 | total?: boolean; 22 | /** 23 | * The glob pattern of dirs to cleanup 24 | * 25 | * If not set, it will use the default value 26 | * 27 | * Multiple values use "," to separate them 28 | */ 29 | cleanupDir?: string; 30 | /** 31 | * display lang of cli 32 | * 33 | * @default 'en-us' 34 | */ 35 | lang?: Lang; 36 | } 37 | 38 | async function setupCli() { 39 | const cliOptions = await loadCliOptions(); 40 | 41 | const cli = cac('soybean'); 42 | 43 | cli 44 | .version(version) 45 | .option( 46 | '-e, --execute [command]', 47 | "Execute additional command after bumping and before git commit. Defaults to 'npx soy changelog'" 48 | ) 49 | .option('-p, --push', 'Indicates whether to push the git commit and tag') 50 | .option('-t, --total', 'Generate changelog by total tags') 51 | .option( 52 | '-c, --cleanupDir ', 53 | 'The glob pattern of dirs to cleanup, If not set, it will use the default value, Multiple values use "," to separate them' 54 | ) 55 | .option('-l, --lang ', 'display lang of cli', { default: 'en-us', type: [String] }) 56 | .help(); 57 | 58 | const commands: CommandWithAction = { 59 | cleanup: { 60 | desc: 'delete dirs: node_modules, dist, etc.', 61 | action: async args => { 62 | const cleanupDirs = args?.cleanupDir?.split(',') || []; 63 | const formattedDirs = cleanupDirs.map(dir => dir.trim()).filter(Boolean); 64 | 65 | if (formattedDirs.length) { 66 | cliOptions.cleanupDirs = formattedDirs; 67 | } 68 | 69 | await cleanup(cliOptions.cleanupDirs); 70 | } 71 | }, 72 | ncu: { 73 | desc: 'npm-check-updates, it can update package.json dependencies to the latest version', 74 | action: async () => { 75 | await ncu(cliOptions.ncuCommandArgs); 76 | } 77 | }, 78 | 'update-pkg': { 79 | desc: 'equal to command "ncu"', 80 | action: async () => { 81 | await ncu(); 82 | } 83 | }, 84 | 'git-commit': { 85 | desc: 'git commit, generate commit message which match Conventional Commits standard', 86 | action: async args => { 87 | await gitCommit(args?.lang); 88 | } 89 | }, 90 | 'git-commit-verify': { 91 | desc: 'verify git commit message, make sure it match Conventional Commits standard', 92 | action: async args => { 93 | await gitCommitVerify(args?.lang, cliOptions.gitCommitVerifyIgnores); 94 | } 95 | }, 96 | changelog: { 97 | desc: 'generate changelog', 98 | action: async args => { 99 | await genChangelog(cliOptions.changelogOptions, args?.total); 100 | } 101 | }, 102 | release: { 103 | desc: 'release: update version, generate changelog, commit code', 104 | action: async args => { 105 | await release(args?.execute, args?.push); 106 | } 107 | } 108 | }; 109 | 110 | for await (const [command, { desc, action }] of Object.entries(commands)) { 111 | cli.command(command, desc).action(action); 112 | } 113 | 114 | cli.parse(); 115 | } 116 | 117 | setupCli(); 118 | 119 | export function defineConfig(config?: Partial) { 120 | return config; 121 | } 122 | 123 | export type { CliOption }; 124 | -------------------------------------------------------------------------------- /packages/create-soybean/src/index.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import process from 'node:process'; 3 | import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from 'node:fs'; 4 | import path from 'node:path'; 5 | import { fileURLToPath } from 'node:url'; 6 | import { cyan, green, red, reset, yellow } from 'kolorist'; 7 | import minimist from 'minimist'; 8 | import prompts from 'prompts'; 9 | import type { Answers } from 'prompts'; 10 | import { consola } from 'consola'; 11 | import { copy, emptyDir, formatTargetDir, isPathEmpty, isValidPackageName, toValidPackageName } from './shared'; 12 | 13 | type TemplateType = 'pnpm-monorepo' | 'tsdown' | 'tsup' | 'unbuild' | 'vue' | 'vue-tsdown'; 14 | 15 | type ColorFunc = (str: string | number) => string; 16 | 17 | interface Template { 18 | type: TemplateType; 19 | name: string; 20 | color: ColorFunc; 21 | } 22 | 23 | const templates: Template[] = [ 24 | { 25 | type: 'pnpm-monorepo', 26 | name: 'Pnpm monorepo', 27 | color: yellow 28 | }, 29 | { 30 | type: 'tsdown', 31 | name: 'TypeScript library by tsdown', 32 | color: cyan 33 | }, 34 | { 35 | type: 'vue', 36 | name: 'Vue 3', 37 | color: green 38 | }, 39 | { 40 | type: 'vue-tsdown', 41 | name: 'Vue 3 + TypeScript library by tsdown', 42 | color: green 43 | } 44 | ]; 45 | 46 | const TEMPLATES = templates.map(t => t.type); 47 | 48 | const renameFiles: Record = { 49 | _editorconfig: '.editorconfig', 50 | _gitattributes: '.gitattributes', 51 | _gitignore: '.gitignore', 52 | _npmrc: '.npmrc', 53 | _prettierrc: '.prettierrc' 54 | }; 55 | 56 | const defaultTargetDir = 'create-soybean-project'; 57 | 58 | interface CliArgs { 59 | t?: string; 60 | template?: string; 61 | } 62 | 63 | async function setupCli() { 64 | const cwd = process.cwd(); 65 | 66 | const argv = minimist(process.argv.slice(2), { string: ['_'] }); 67 | 68 | const argTargetDir = formatTargetDir(argv._[0]); 69 | const argTemplate = (argv.template || argv.t) as TemplateType | undefined; 70 | 71 | let targetDir = argTargetDir || defaultTargetDir; 72 | 73 | function getProjectName() { 74 | return targetDir === '.' ? path.basename(path.resolve()) : targetDir; 75 | } 76 | 77 | let result: Answers<'projectName' | 'overwrite' | 'packageName' | 'template'> | null = null; 78 | 79 | try { 80 | result = await prompts([ 81 | { 82 | type: argTargetDir ? null : 'text', 83 | name: 'projectName', 84 | message: reset('Project name:'), 85 | initial: defaultTargetDir, 86 | onState: state => { 87 | targetDir = formatTargetDir(state.value) || defaultTargetDir; 88 | } 89 | }, 90 | { 91 | type: () => (!existsSync(targetDir) || isPathEmpty(targetDir) ? null : 'confirm'), 92 | name: 'overwrite', 93 | message: () => 94 | `${ 95 | targetDir === '.' ? 'Current directory' : `Target directory "${targetDir}"` 96 | } is not empty. Remove existing files and continue?` 97 | }, 98 | { 99 | type: (_, { overwrite }: { overwrite?: boolean }) => { 100 | if (overwrite === false) { 101 | throw new Error(`${red('✖')} Operation cancelled`); 102 | } 103 | 104 | return null; 105 | }, 106 | name: 'overwriteChecker' 107 | }, 108 | { 109 | type: () => (isValidPackageName(getProjectName()) ? null : 'text'), 110 | name: 'packageName', 111 | message: reset('Package name:'), 112 | initial: () => toValidPackageName(getProjectName()), 113 | validate: dir => isValidPackageName(dir) || 'Invalid package.json name' 114 | }, 115 | { 116 | type: argTemplate && TEMPLATES.includes(argTemplate) ? null : 'select', 117 | name: 'template', 118 | message: 119 | typeof argTemplate === 'string' && !TEMPLATES.includes(argTemplate) 120 | ? reset(`"${argTemplate}" isn't a valid template. Please choose from below: `) 121 | : reset('Select a template:'), 122 | initial: 0, 123 | choices: templates.map(({ type, name, color }) => ({ 124 | title: color(name), 125 | value: type 126 | })) 127 | } 128 | ]); 129 | } catch (error) { 130 | consola.error(error); 131 | } 132 | 133 | if (!result) { 134 | return; 135 | } 136 | 137 | const { template, overwrite, packageName } = result; 138 | 139 | const root = path.join(cwd, targetDir); 140 | 141 | if (overwrite) { 142 | emptyDir(root); 143 | } else if (!existsSync(root)) { 144 | mkdirSync(root, { recursive: true }); 145 | } 146 | 147 | const $template: string = template || argTemplate; 148 | 149 | consola.info(`\nScaffolding project in ${root}...`); 150 | 151 | const templateDir = path.resolve(fileURLToPath(import.meta.url), '../..', `template-${$template}`); 152 | 153 | const write = (file: string, content?: string) => { 154 | const targetPath = path.join(root, renameFiles[file] ?? file); 155 | if (content) { 156 | writeFileSync(targetPath, content); 157 | } else { 158 | copy(path.join(templateDir, file), targetPath); 159 | } 160 | }; 161 | 162 | const files = readdirSync(templateDir); 163 | for (const file of files.filter(f => f !== 'package.json')) { 164 | write(file); 165 | } 166 | 167 | const pkg = JSON.parse(readFileSync(path.join(templateDir, `package.json`), 'utf-8')); 168 | 169 | pkg.name = packageName || getProjectName(); 170 | 171 | write('package.json', `${JSON.stringify(pkg, null, 2)}\n`); 172 | 173 | const cdProjectName = path.relative(cwd, root); 174 | 175 | consola.info(`\nDone. Now run:\n`); 176 | 177 | if (root !== cwd) { 178 | consola.info(` cd ${cdProjectName.includes(' ') ? `"${cdProjectName}"` : cdProjectName}`); 179 | } 180 | } 181 | 182 | setupCli(); 183 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | 4 | ## [v1.4.1](https://github.com/soybeanjs/cli/compare/v1.4.0...v1.4.1) (2025-10-29) 5 | 6 | ###    🐞 Bug Fixes 7 | 8 | - **command**: update command to use 'npm-check-updates' instead of 'ncu'  -  by @soybeanjs [(9efe9)](https://github.com/soybeanjs/cli/commit/9efe922) 9 | 10 | ###    🏡 Chore 11 | 12 | - **deps**: update deps  -  by @soybeanjs [(304db)](https://github.com/soybeanjs/cli/commit/304db33) 13 | 14 | ###    ❤️ Contributors 15 | 16 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   17 | 18 | ## [v1.4.0](https://github.com/soybeanjs/cli/compare/v1.3.1...v1.4.0) (2025-08-29) 19 | 20 | ###    🚀 Features 21 | 22 | - **project**: add command stub  -  by @soybeanjs [(7a34e)](https://github.com/soybeanjs/cli/commit/7a34eb0) 23 | 24 | ###    🐞 Bug Fixes 25 | 26 | - **deps**: 27 | - add picomatch  -  by @soybeanjs [(8dfbf)](https://github.com/soybeanjs/cli/commit/8dfbfc8) 28 | - **projects**: 29 | - fix bin  -  by @soybeanjs [(cfd85)](https://github.com/soybeanjs/cli/commit/cfd8580) 30 | - fix enquirer import  -  by @soybeanjs [(108d4)](https://github.com/soybeanjs/cli/commit/108d405) 31 | 32 | ###    💅 Refactors 33 | 34 | - **projects**: use tsdown replace tsup  -  by @soybeanjs [(618f3)](https://github.com/soybeanjs/cli/commit/618f358) 35 | 36 | ###    📖 Documentation 37 | 38 | - **projects**: remove outdated project templates from README  -  by @soybeanjs [(68ad0)](https://github.com/soybeanjs/cli/commit/68ad0b9) 39 | 40 | ###    🏡 Chore 41 | 42 | - **deps**: 43 | - update deps  -  by @soybeanjs [(0cde7)](https://github.com/soybeanjs/cli/commit/0cde76e) 44 | - update deps  -  by @soybeanjs [(37600)](https://github.com/soybeanjs/cli/commit/3760033) 45 | - update deps  -  by @soybeanjs [(07255)](https://github.com/soybeanjs/cli/commit/0725572) 46 | - update changelog package  -  by @soybeanjs [(cf424)](https://github.com/soybeanjs/cli/commit/cf4248a) 47 | - **projects**: 48 | - update vscode settings  -  by @soybeanjs [(e13d4)](https://github.com/soybeanjs/cli/commit/e13d45c) 49 | - **templates**: 50 | - remove tsup and unbuild templates from create-soybean  -  by @soybeanjs [(05166)](https://github.com/soybeanjs/cli/commit/051662b) 51 | 52 | ###    ❤️ Contributors 53 | 54 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   55 | 56 | ## [v1.4.0-beta.4](https://github.com/soybeanjs/cli/compare/v1.4.0-beta.3...v1.4.0-beta.4) (2025-08-29) 57 | 58 | ###    🐞 Bug Fixes 59 | 60 | - **projects**: fix enquirer import  -  by @soybeanjs [(108d4)](https://github.com/soybeanjs/cli/commit/108d405) 61 | 62 | ###    🏡 Chore 63 | 64 | - **projects**: update vscode settings  -  by @soybeanjs [(e13d4)](https://github.com/soybeanjs/cli/commit/e13d45c) 65 | 66 | ###    ❤️ Contributors 67 | 68 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   69 | 70 | ## [v1.4.0-beta.3](https://github.com/soybeanjs/cli/compare/v1.4.0-beta.2...v1.4.0-beta.3) (2025-08-29) 71 | 72 | ###    📖 Documentation 73 | 74 | - **projects**: remove outdated project templates from README  -  by @soybeanjs [(68ad0)](https://github.com/soybeanjs/cli/commit/68ad0b9) 75 | 76 | ###    🏡 Chore 77 | 78 | - **deps**: update deps  -  by @soybeanjs [(07255)](https://github.com/soybeanjs/cli/commit/0725572) 79 | 80 | ###    ❤️ Contributors 81 | 82 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   83 | 84 | ## [v1.4.0-beta.2](https://github.com/soybeanjs/cli/compare/v1.4.0-beta.1...v1.4.0-beta.2) (2025-08-27) 85 | 86 | ###    🐞 Bug Fixes 87 | 88 | - **deps**: add picomatch  -  by @soybeanjs [(8dfbf)](https://github.com/soybeanjs/cli/commit/8dfbfc8) 89 | 90 | ###    🏡 Chore 91 | 92 | - **deps**: update deps  -  by @soybeanjs [(37600)](https://github.com/soybeanjs/cli/commit/3760033) 93 | 94 | ###    ❤️ Contributors 95 | 96 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   97 | 98 | ## [v1.4.0-beta.1](https://github.com/soybeanjs/cli/compare/v1.3.1...v1.4.0-beta.1) (2025-07-13) 99 | 100 | ###    🚀 Features 101 | 102 | - **project**: add command stub  -  by @soybeanjs [(7a34e)](https://github.com/soybeanjs/cli/commit/7a34eb0) 103 | 104 | ###    🐞 Bug Fixes 105 | 106 | - **projects**: fix bin  -  by @soybeanjs [(cfd85)](https://github.com/soybeanjs/cli/commit/cfd8580) 107 | 108 | ###    💅 Refactors 109 | 110 | - **projects**: use tsdown replace tsup  -  by @soybeanjs [(618f3)](https://github.com/soybeanjs/cli/commit/618f358) 111 | 112 | ###    🏡 Chore 113 | 114 | - **deps**: update deps  -  by @soybeanjs [(0cde7)](https://github.com/soybeanjs/cli/commit/0cde76e) 115 | - **templates**: remove tsup and unbuild templates from create-soybean  -  by @soybeanjs [(05166)](https://github.com/soybeanjs/cli/commit/051662b) 116 | 117 | ###    ❤️ Contributors 118 | 119 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   120 | 121 | ## [v1.3.1](https://github.com/soybeanjs/cli/compare/v1.3.0...v1.3.1) (2025-06-10) 122 | 123 | ###    🏡 Chore 124 | 125 | - **deps**: update deps  -  by @soybeanjs [(33c35)](https://github.com/soybeanjs/cli/commit/33c3563) 126 | 127 | ###    ❤️ Contributors 128 | 129 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   130 | 131 | ## [v1.3.0](https://github.com/soybeanjs/cli/compare/v1.2.1...v1.3.0) (2025-05-15) 132 | 133 | ###    🚀 Features 134 | 135 | - **packages**: create-soybean: add templates  -  by @soybeanjs [(aa8f1)](https://github.com/soybeanjs/cli/commit/aa8f1e4) 136 | 137 | ###    🐞 Bug Fixes 138 | 139 | - **packages**: create-soybean: fix template path  -  by @soybeanjs [(ef4d0)](https://github.com/soybeanjs/cli/commit/ef4d013) 140 | 141 | ###    🛠 Optimizations 142 | 143 | - **packages**: 144 | - optimize create-soybean templates  -  by @soybeanjs [(edb0d)](https://github.com/soybeanjs/cli/commit/edb0d50) 145 | - optimize create-soybean  -  by @soybeanjs [(b04a6)](https://github.com/soybeanjs/cli/commit/b04a6bc) 146 | - optimize create-soybean template  -  by @soybeanjs [(8b5e1)](https://github.com/soybeanjs/cli/commit/8b5e1e1) 147 | 148 | ###    🏡 Chore 149 | 150 | - **deps**: update deps  -  by @soybeanjs [(646bd)](https://github.com/soybeanjs/cli/commit/646bd32) 151 | 152 | ###    ❤️ Contributors 153 | 154 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   155 | 156 | ## [v1.3.0-beta.3](https://github.com/soybeanjs/cli/compare/v1.3.0-beta.2...v1.3.0-beta.3) (2025-05-15) 157 | 158 | ###    🛠 Optimizations 159 | 160 | - **packages**: optimize create-soybean  -  by @soybeanjs [(b04a6)](https://github.com/soybeanjs/cli/commit/b04a6bc) 161 | 162 | ###    ❤️ Contributors 163 | 164 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   165 | 166 | ## [v1.3.0-beta.2](https://github.com/soybeanjs/cli/compare/v1.3.0-beta.1...v1.3.0-beta.2) (2025-05-15) 167 | 168 | ###    🐞 Bug Fixes 169 | 170 | - **packages**: create-soybean: fix template path  -  by @soybeanjs [(ef4d0)](https://github.com/soybeanjs/cli/commit/ef4d013) 171 | 172 | ###    ❤️ Contributors 173 | 174 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   175 | 176 | ## [v1.3.0-beta.1](https://github.com/soybeanjs/cli/compare/v1.2.1...v1.3.0-beta.1) (2025-05-15) 177 | 178 | ###    🚀 Features 179 | 180 | - **packages**: create-soybean: add templates  -  by @soybeanjs [(aa8f1)](https://github.com/soybeanjs/cli/commit/aa8f1e4) 181 | 182 | ###    🛠 Optimizations 183 | 184 | - **packages**: optimize create-soybean templates  -  by @soybeanjs [(edb0d)](https://github.com/soybeanjs/cli/commit/edb0d50) 185 | 186 | ###    🏡 Chore 187 | 188 | - **deps**: update deps  -  by @soybeanjs [(646bd)](https://github.com/soybeanjs/cli/commit/646bd32) 189 | 190 | ###    ❤️ Contributors 191 | 192 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   193 | 194 | ## [v1.2.1](https://github.com/soybeanjs/cli/compare/v1.2.0...v1.2.1) (2025-03-20) 195 | 196 | ###    🚀 Features 197 | 198 | - **projects**: update vue-template  -  by @soybeanjs [(3ee06)](https://github.com/soybeanjs/cli/commit/3ee06a8) 199 | 200 | ###    🏡 Chore 201 | 202 | - **deps**: update deps  -  by @soybeanjs [(39a27)](https://github.com/soybeanjs/cli/commit/39a273a) 203 | 204 | ###    ❤️ Contributors 205 | 206 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   207 | 208 | ## [v1.2.0](https://github.com/soybeanjs/cli/compare/v1.1.1...v1.2.0) (2025-03-14) 209 | 210 | ###    🚀 Features 211 | 212 | - **projects**: update create-soybean templates  -  by @soybeanjs [(fea25)](https://github.com/soybeanjs/cli/commit/fea2591) 213 | 214 | ###    🏡 Chore 215 | 216 | - **deps**: 217 | - bump npm-check-updates from 17.1.1 to 17.1.11  -  by **dependabot[bot]** in https://github.com/soybeanjs/cli/issues/9 [(9d167)](https://github.com/soybeanjs/cli/commit/9d16792) 218 | - bump bumpp from 9.5.2 to 9.8.1  -  by **dependabot[bot]** in https://github.com/soybeanjs/cli/issues/11 [(ebb96)](https://github.com/soybeanjs/cli/commit/ebb967b) 219 | - update deps  -  by @soybeanjs [(56f8d)](https://github.com/soybeanjs/cli/commit/56f8dd2) 220 | - update deps  -  by @soybeanjs [(e3107)](https://github.com/soybeanjs/cli/commit/e31074c) 221 | - **deps-dev**: 222 | - bump eslint from 9.10.0 to 9.14.0  -  by **dependabot[bot]** in https://github.com/soybeanjs/cli/issues/7 [(9fa63)](https://github.com/soybeanjs/cli/commit/9fa63b7) 223 | - **projects**: 224 | - add dependabot.yml  -  by @soybeanjs [(dff89)](https://github.com/soybeanjs/cli/commit/dff89bd) 225 | - remove dependabot.yml  -  by @soybeanjs [(b720b)](https://github.com/soybeanjs/cli/commit/b720b9b) 226 | 227 | ###    ❤️ Contributors 228 | 229 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   230 | [dependabot[bot]](mailto:49699333+dependabot[bot]@users.noreply.github.com) 231 | 232 | ## [v1.1.1](https://github.com/soybeanjs/cli/compare/v1.1.0...v1.1.1) (2024-09-07) 233 | 234 | ###    🚀 Features 235 | 236 | - **projects**: git-commit support Chinese mode  -  by **Azir** [(9e097)](https://github.com/soybeanjs/cli/commit/9e097e3) 237 | 238 | ###    🏡 Chore 239 | 240 | - **deps**: update deps  -  by @soybeanjs [(d22e8)](https://github.com/soybeanjs/cli/commit/d22e89a) 241 | 242 | ###    ❤️ Contributors 243 | 244 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   245 | [Azir](mailto:2075125282@qq.com) 246 | 247 | ## [v1.1.0](https://github.com/soybeanjs/cli/compare/v1.0.19...v1.1.0) (2024-08-01) 248 | 249 | ###    🏡 Chore 250 | 251 | - **projects**: 252 | - update deps & update template  -  by @honghuangdc [(304af)](https://github.com/soybeanjs/cli/commit/304af72) 253 | - update script  -  by @honghuangdc [(d5856)](https://github.com/soybeanjs/cli/commit/d585611) 254 | 255 | ###    ❤️ Contributors 256 | 257 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   258 | 259 | ## [v1.0.19](https://github.com/soybeanjs/cli/compare/v1.0.18...v1.0.19) (2024-06-15) 260 | 261 | ###    🏡 Chore 262 | 263 | - **deps**: update deps  -  by @soybeanjs [(bb26c)](https://github.com/soybeanjs/cli/commit/bb26c52) 264 | 265 | ###    ❤️ Contributors 266 | 267 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   268 | 269 | ## [v1.0.18](https://github.com/soybeanjs/cli/compare/v1.0.17...v1.0.18) (2024-06-14) 270 | 271 | ###    🏡 Chore 272 | 273 | - **projects**: update pnpm version  -  by @soybeanjs [(3168b)](https://github.com/soybeanjs/cli/commit/3168ba1) 274 | 275 | ###    ❤️ Contributors 276 | 277 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   278 | 279 | ## [v1.0.17](https://github.com/soybeanjs/cli/compare/v1.0.16...v1.0.17) (2024-06-14) 280 | 281 | ###    🏡 Chore 282 | 283 | - **deps**: update deps  -  by @soybeanjs [(effa8)](https://github.com/soybeanjs/cli/commit/effa888) 284 | 285 | ###    ❤️ Contributors 286 | 287 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   288 | 289 | ## [v1.0.16](https://github.com/soybeanjs/cli/compare/v1.0.15...v1.0.16) (2024-06-05) 290 | 291 | ###    🏡 Chore 292 | 293 | - **deps**: update deps  -  by @soybeanjs [(58ce1)](https://github.com/soybeanjs/cli/commit/58ce17b) 294 | - **projects**: update template pnpm version  -  by @soybeanjs [(bf4d7)](https://github.com/soybeanjs/cli/commit/bf4d783) 295 | 296 | ###    ❤️ Contributors 297 | 298 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   299 | 300 | ## [v1.0.15](https://github.com/soybeanjs/cli/compare/v1.0.14...v1.0.15) (2024-06-01) 301 | 302 | ###    🏡 Chore 303 | 304 | - **deps**: 305 | - update deps  -  by @soybeanjs [(8a5ee)](https://github.com/soybeanjs/cli/commit/8a5ee3b) 306 | - **projects**: 307 | - update deps & update pnpm versions  -  by @soybeanjs [(394d2)](https://github.com/soybeanjs/cli/commit/394d226) 308 | - update pnpm versions  -  by @soybeanjs [(427c5)](https://github.com/soybeanjs/cli/commit/427c5a9) 309 | - update vscode launch.json  -  by @soybeanjs [(4b17c)](https://github.com/soybeanjs/cli/commit/4b17c63) 310 | 311 | ###    ❤️ Contributors 312 | 313 | [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   314 | 315 | ## [v1.0.14](https://github.com/soybeanjs/cli/compare/v1.0.13...v1.0.14) (2024-04-27) 316 | 317 | ###    🚀 Features 318 | 319 | - **projects**: add new commit type `optimize` and commit scope `packages`  -  by @honghuangdc [(cb1f7)](https://github.com/soybeanjs/cli/commit/cb1f7cd) 320 | 321 | ###    🏡 Chore 322 | 323 | - **deps**: update deps  -  by @honghuangdc [(4cdda)](https://github.com/soybeanjs/cli/commit/4cdda8b) 324 | 325 | ###    ❤️ Contributors 326 | 327 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   328 | 329 | ## [v1.0.13](https://github.com/soybeanjs/cli/compare/v1.0.12...v1.0.13) (2024-04-24) 330 | 331 | ###    🏡 Chore 332 | 333 | - **deps**: update deps  -  by @honghuangdc [(221f4)](https://github.com/soybeanjs/cli/commit/221f4d1) 334 | 335 | ###    ❤️ Contributors 336 | 337 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   338 | 339 | ## [v1.0.12](https://github.com/soybeanjs/cli/compare/v1.0.11...v1.0.12) (2024-04-24) 340 | 341 | ###    🏡 Chore 342 | 343 | - **deps**: update deps  -  by @honghuangdc [(be6fc)](https://github.com/soybeanjs/cli/commit/be6fc67) 344 | - **projects**: update @soybeanjs/changelog & update CHANGELOG.md  -  by @honghuangdc [(dd33c)](https://github.com/soybeanjs/cli/commit/dd33c30) 345 | 346 | ###    ❤️ Contributors 347 | 348 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   349 | 350 | ## [v1.0.12-beta.1](https://github.com/soybeanjs/cli/compare/v1.0.11...v1.0.12-beta.1) (2024-04-24) 351 | 352 | ###    🏡 Chore 353 | 354 | - **deps**: update deps  -  by @honghuangdc [(be6fc)](https://github.com/soybeanjs/cli/commit/be6fc67) 355 | - **projects**: update @soybeanjs/changelog & update CHANGELOG.md  -  by @honghuangdc [(dd33c)](https://github.com/soybeanjs/cli/commit/dd33c30) 356 | 357 | ###    ❤️ Contributors 358 | 359 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   360 | 361 | ## [v1.0.11](https://github.com/soybeanjs/cli/compare/v1.0.10...v1.0.11) (2024-03-17) 362 | 363 | ###    🏡 Chore 364 | 365 | - **deps**: update deps  -  by @honghuangdc [(94a9f)](https://github.com/soybeanjs/cli/commit/94a9f9e) 366 | - **projects**: update vscode config  -  by @honghuangdc [(47835)](https://github.com/soybeanjs/cli/commit/478355a) 367 | 368 | ###    ❤️ Contributors 369 | 370 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   371 | 372 | ## [v1.0.10](https://github.com/soybeanjs/cli/compare/v1.0.9...v1.0.10) (2024-03-13) 373 | 374 | ###    🏡 Chore 375 | 376 | - **deps**: update deps  -  by @honghuangdc [(80433)](https://github.com/soybeanjs/cli/commit/80433b1) 377 | 378 | ###    ❤️ Contributors 379 | 380 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   381 | 382 | ## [v1.0.9](https://github.com/soybeanjs/cli/compare/v1.0.8...v1.0.9) (2024-03-03) 383 | 384 | ###    🏡 Chore 385 | 386 | - **projects**: update deps: changelog & fix generate changelog  -  by @honghuangdc [(8bf19)](https://github.com/soybeanjs/cli/commit/8bf1976) 387 | 388 | ###    ❤️ Contributors 389 | 390 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   391 | 392 | ## [v1.0.9-beta.0](https://github.com/soybeanjs/cli/compare/v1.0.8...v1.0.9-beta.0) (2024-03-03) 393 | 394 | ###    🏡 Chore 395 | 396 | - **projects**: update deps: changelog & fix generate changelog  -  by @honghuangdc [(8bf19)](https://github.com/soybeanjs/cli/commit/8bf1976) 397 | 398 | ###    ❤️ Contributors 399 | 400 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   401 | 402 | ## [v1.0.8](https://github.com/soybeanjs/cli/compare/v1.0.7...v1.0.8) (2024-03-03) 403 | 404 | ###    🚀 Features 405 | 406 | - **projects**: add command "update-pkg"  -  by @honghuangdc [(f6ba2)](https://github.com/soybeanjs/cli/commit/f6ba25b) 407 | 408 | ###    🏡 Chore 409 | 410 | - **deps**: 411 | - update deps  -  by @honghuangdc [(a89e6)](https://github.com/soybeanjs/cli/commit/a89e61f) 412 | - **projects**: 413 | - update scripts update-pkg  -  by @honghuangdc [(4f160)](https://github.com/soybeanjs/cli/commit/4f16042) 414 | - update launch.json  -  by @honghuangdc [(9b656)](https://github.com/soybeanjs/cli/commit/9b656cf) 415 | 416 | ###    ❤️ Contributors 417 | 418 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   419 | 420 | ## [v1.0.8-beta.3](https://github.com/soybeanjs/cli/compare/v1.0.8-beta.2...v1.0.8-beta.3) (2024-03-03) 421 | 422 | ###    🏡 Chore 423 | 424 | - **projects**: update launch.json  -  by @honghuangdc [(9b656)](https://github.com/soybeanjs/cli/commit/9b656cf) 425 | 426 | ###    ❤️ Contributors 427 | 428 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   429 | 430 | ## [v1.0.8-beta.2](https://github.com/soybeanjs/cli/compare/v1.0.8-beta.1...v1.0.8-beta.2) (2024-03-03) 431 | 432 | ###    🏡 Chore 433 | 434 | - **projects**: update scripts update-pkg  -  by @honghuangdc [(4f160)](https://github.com/soybeanjs/cli/commit/4f16042) 435 | 436 | ###    ❤️ Contributors 437 | 438 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   439 | 440 | ## [v1.0.8-beta.1](https://github.com/soybeanjs/cli/compare/v1.0.8-beta.0...v1.0.8-beta.1) (2024-03-03) 441 | 442 | ###    🚀 Features 443 | 444 | - **projects**: add command "update-pkg"  -  by @honghuangdc [(f6ba2)](https://github.com/soybeanjs/cli/commit/f6ba25b) 445 | 446 | ###    ❤️ Contributors 447 | 448 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   449 | 450 | ## [v1.0.8-beta.0](https://github.com/soybeanjs/cli/compare/v1.0.7...v1.0.8-beta.0) (2024-03-03) 451 | 452 | ###    🏡 Chore 453 | 454 | - **deps**: update deps  -  by @honghuangdc [(a89e6)](https://github.com/soybeanjs/cli/commit/a89e61f) 455 | 456 | ###    ❤️ Contributors 457 | 458 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   459 | 460 | ## [v1.0.7](https://github.com/soybeanjs/cli/compare/v1.0.6...v1.0.7) (2024-03-03) 461 | 462 | ###    💅 Refactors 463 | 464 | - **projects**: use enquirer replace prompts  -  by @honghuangdc [(bff7d)](https://github.com/soybeanjs/cli/commit/bff7dd9) 465 | 466 | ###    🏡 Chore 467 | 468 | - **deps**: update deps  -  by @honghuangdc [(60bdb)](https://github.com/soybeanjs/cli/commit/60bdbb3) 469 | 470 | ###    ❤️ Contributors 471 | 472 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   473 | 474 | ## [v1.0.6](https://github.com/soybeanjs/cli/compare/v1.0.5...v1.0.6) (2024-01-21) 475 | 476 | ###    🚀 Features 477 | 478 | - **projects**: add release script to update template version  -  by @honghuangdc [(1dcaa)](https://github.com/soybeanjs/cli/commit/1dcaa70) 479 | 480 | ###    ❤️ Contributors 481 | 482 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   483 | 484 | ## [v1.0.5](https://github.com/soybeanjs/cli/compare/v1.0.4...v1.0.5) (2024-01-21) 485 | 486 | ###    🏡 Chore 487 | 488 | - **projects**: update cli version of create-soybean template  -  by @honghuangdc [(695e8)](https://github.com/soybeanjs/cli/commit/695e89a) 489 | 490 | ###    ❤️ Contributors 491 | 492 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   493 | 494 | ## [v1.0.4](https://github.com/soybeanjs/cli/compare/v1.0.3...v1.0.4) (2024-01-21) 495 | 496 | ###    🚀 Features 497 | 498 | - **projects**: support break change  -  by @honghuangdc [(f5261)](https://github.com/soybeanjs/cli/commit/f526176) 499 | 500 | ###    🔥 Performance 501 | 502 | - **projects**: remove minimist  -  by @honghuangdc [(831bb)](https://github.com/soybeanjs/cli/commit/831bb79) 503 | 504 | ###    💅 Refactors 505 | 506 | - **projects**: update prompt description  -  by @honghuangdc [(7b7b7)](https://github.com/soybeanjs/cli/commit/7b7b76d) 507 | 508 | ###    📖 Documentation 509 | 510 | - **projects**: update README.md  -  by @honghuangdc [(77e20)](https://github.com/soybeanjs/cli/commit/77e2005) 511 | 512 | ###    ❤️ Contributors 513 | 514 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   515 | 516 | ## [v1.0.3](https://github.com/soybeanjs/cli/compare/v1.0.2...v1.0.3) (2024-01-21) 517 | 518 | ###    💅 Refactors 519 | 520 | - **projects**: 521 | - update config  -  by @honghuangdc [(030c9)](https://github.com/soybeanjs/cli/commit/030c9bd) 522 | - use prompts replace enquirer  -  by @honghuangdc [(09652)](https://github.com/soybeanjs/cli/commit/0965281) 523 | 524 | ###    🏡 Chore 525 | 526 | - **deps**: update deps  -  by @honghuangdc [(c5402)](https://github.com/soybeanjs/cli/commit/c54027e) 527 | 528 | ###    ❤️ Contributors 529 | 530 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   531 | 532 | ## [v1.0.2](https://github.com/soybeanjs/cli/compare/v1.0.1...v1.0.2) (2024-01-14) 533 | 534 | ###    🐞 Bug Fixes 535 | 536 | - **projects**: fix export  -  by @honghuangdc [(d9798)](https://github.com/soybeanjs/cli/commit/d9798ca) 537 | 538 | ###    🏡 Chore 539 | 540 | - **deps**: 541 | - update deps  -  by @honghuangdc [(51959)](https://github.com/soybeanjs/cli/commit/5195924) 542 | - update deps  -  by @honghuangdc [(5809b)](https://github.com/soybeanjs/cli/commit/5809b2e) 543 | 544 | ###    ❤️ Contributors 545 | 546 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   547 | 548 | ## [v1.0.2-beta.0](https://github.com/soybeanjs/cli/compare/v1.0.1...v1.0.2-beta.0) (2024-01-14) 549 | 550 | ###    🐞 Bug Fixes 551 | 552 | - **projects**: fix export  -  by @honghuangdc [(d9798)](https://github.com/soybeanjs/cli/commit/d9798ca) 553 | 554 | ###    🏡 Chore 555 | 556 | - **deps**: update deps  -  by @honghuangdc [(51959)](https://github.com/soybeanjs/cli/commit/5195924) 557 | 558 | ###    ❤️ Contributors 559 | 560 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   561 | 562 | ## [v1.0.1](https://github.com/soybeanjs/cli/compare/v1.0.0...v1.0.1) (2024-01-08) 563 | 564 | ###    🐞 Bug Fixes 565 | 566 | - **projects**: fix create-soybean bin  -  by @honghuangdc [(60b94)](https://github.com/soybeanjs/cli/commit/60b944d) 567 | 568 | ###    ❤️ Contributors 569 | 570 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   571 | 572 | ## [v1.0.0](https://github.com/soybeanjs/cli/compare/v0.8.10...v1.0.0) (2023-12-29) 573 | 574 | ###    🚀 Features 575 | 576 | - **projects**: 577 | - remove deprecated command  -  by @honghuangdc [(7e15f)](https://github.com/soybeanjs/cli/commit/7e15f0b) 578 | - add short options  -  by @honghuangdc [(14ecd)](https://github.com/soybeanjs/cli/commit/14ecdb8) 579 | - add option cleanupDir for cleanup command  -  by @honghuangdc [(3ec57)](https://github.com/soybeanjs/cli/commit/3ec577a) 580 | - support sun cli in mjs  -  by @honghuangdc [(aea2d)](https://github.com/soybeanjs/cli/commit/aea2d03) 581 | - add create-soybean template: ts lib by tsup, pnpm monorepo  -  by @honghuangdc [(43be0)](https://github.com/soybeanjs/cli/commit/43be0a9) 582 | - update tsup template  -  by @honghuangdc [(527ea)](https://github.com/soybeanjs/cli/commit/527ea25) 583 | 584 | ###    🐞 Bug Fixes 585 | 586 | - **projects**: 587 | - fix bin in package.json  -  by @honghuangdc [(563ca)](https://github.com/soybeanjs/cli/commit/563ca9e) 588 | - fix export files  -  by @honghuangdc [(2d30a)](https://github.com/soybeanjs/cli/commit/2d30a21) 589 | - fix bumpp  -  by @honghuangdc [(f9fa5)](https://github.com/soybeanjs/cli/commit/f9fa527) 590 | 591 | ###    🔥 Performance 592 | 593 | - **projects**: remove useless files & update README.md  -  by @honghuangdc [(fe1a2)](https://github.com/soybeanjs/cli/commit/fe1a26e) 594 | 595 | ###    💅 Refactors 596 | 597 | - **projects**: use tsup replace unbuild  -  by @honghuangdc [(419d6)](https://github.com/soybeanjs/cli/commit/419d6ed) 598 | 599 | ###    📖 Documentation 600 | 601 | - **projects**: 602 | - fix CHANGELOG.md  -  by @honghuangdc [(7049b)](https://github.com/soybeanjs/cli/commit/7049b55) 603 | - fix CHANGELOG.md  -  by @honghuangdc [(19fb6)](https://github.com/soybeanjs/cli/commit/19fb644) 604 | - update create-soybean README.md  -  by @honghuangdc [(2df10)](https://github.com/soybeanjs/cli/commit/2df10f6) 605 | 606 | ###    🏡 Chore 607 | 608 | - **deps**: 609 | - update deps: changelog  -  by @honghuangdc [(3c9f5)](https://github.com/soybeanjs/cli/commit/3c9f5a0) 610 | - update templates pkg versions  -  by @honghuangdc [(21a7e)](https://github.com/soybeanjs/cli/commit/21a7e20) 611 | - update deps  -  by @honghuangdc [(cecf7)](https://github.com/soybeanjs/cli/commit/cecf722) 612 | - update deps  -  by @honghuangdc [(32ea7)](https://github.com/soybeanjs/cli/commit/32ea7e9) 613 | - update deps  -  by @honghuangdc [(14ce6)](https://github.com/soybeanjs/cli/commit/14ce69b) 614 | - **projects**: 615 | - update vscode launch.json  -  by @honghuangdc [(675eb)](https://github.com/soybeanjs/cli/commit/675eb09) 616 | - update pnpm version  -  by @honghuangdc [(beb09)](https://github.com/soybeanjs/cli/commit/beb096e) 617 | - update templates package.json  -  by @honghuangdc [(30d06)](https://github.com/soybeanjs/cli/commit/30d0638) 618 | - update pnpm version  -  by @honghuangdc [(78eb5)](https://github.com/soybeanjs/cli/commit/78eb50b) 619 | 620 | ###    🎨 Styles 621 | 622 | - **projects**: 623 | - format code  -  by @honghuangdc [(51f39)](https://github.com/soybeanjs/cli/commit/51f39ca) 624 | - format code  -  by @honghuangdc [(7649e)](https://github.com/soybeanjs/cli/commit/7649e6c) 625 | 626 | ###    🤖 CI 627 | 628 | - **projects**: update release.yml  -  by @honghuangdc [(48482)](https://github.com/soybeanjs/cli/commit/4848264) 629 | 630 | ###    ❤️ Contributors 631 | 632 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   633 | 634 | ## [v1.0.0-beta.7](https://github.com/soybeanjs/cli/compare/v1.0.0-beta.6...v1.0.0-beta.7) (2023-12-11) 635 | 636 | ###    🐞 Bug Fixes 637 | 638 | - **projects**: fix export files  -  by @honghuangdc [(2d30a)](https://github.com/soybeanjs/cli/commit/2d30a21) 639 | 640 | ###    🏡 Chore 641 | 642 | - **deps**: update deps  -  by @honghuangdc [(cecf7)](https://github.com/soybeanjs/cli/commit/cecf722) 643 | - **projects**: update vscode launch.json  -  by @honghuangdc [(675eb)](https://github.com/soybeanjs/cli/commit/675eb09) 644 | 645 | ###    ❤️ Contributors 646 | 647 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   648 | 649 | ## [v1.0.0-beta.6](https://github.com/soybeanjs/cli/compare/v1.0.0-beta.5...v1.0.0-beta.6) (2023-12-11) 650 | 651 | ###    🔥 Performance 652 | 653 | - **projects**: remove useless files & update README.md  -  by @honghuangdc [(fe1a2)](https://github.com/soybeanjs/cli/commit/fe1a26e) 654 | 655 | ###    📖 Documentation 656 | 657 | - **projects**: update create-soybean README.md  -  by @honghuangdc [(2df10)](https://github.com/soybeanjs/cli/commit/2df10f6) 658 | 659 | ###    🏡 Chore 660 | 661 | - **deps**: update templates pkg versions  -  by @honghuangdc [(21a7e)](https://github.com/soybeanjs/cli/commit/21a7e20) 662 | 663 | ###    ❤️ Contributors 664 | 665 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   666 | 667 | ## [v1.0.0-beta.5](https://github.com/soybeanjs/cli/compare/v1.0.0-beta.4...v1.0.0-beta.5) (2023-12-11) 668 | 669 | ###    🚀 Features 670 | 671 | - **projects**: add create-soybean template: ts lib by tsup, pnpm monorepo  -  by @honghuangdc [(43be0)](https://github.com/soybeanjs/cli/commit/43be0a9) 672 | 673 | ###    🎨 Styles 674 | 675 | - **projects**: format code  -  by @honghuangdc [(7649e)](https://github.com/soybeanjs/cli/commit/7649e6c) 676 | 677 | ###    🤖 CI 678 | 679 | - **projects**: update release.yml  -  by @honghuangdc [(48482)](https://github.com/soybeanjs/cli/commit/4848264) 680 | 681 | ###    ❤️ Contributors 682 | 683 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   684 | 685 | ## [v1.0.0-beta.4](https://github.com/soybeanjs/cli/compare/v1.0.0-beta.3...v1.0.0-beta.4) (2023-12-11) 686 | 687 | ###    🐞 Bug Fixes 688 | 689 | - **projects**: fix bin in package.json  -  by @honghuangdc [(563ca)](https://github.com/soybeanjs/cli/commit/563ca9e) 690 | 691 | ###    🎨 Styles 692 | 693 | - **projects**: format code  -  by @honghuangdc [(51f39)](https://github.com/soybeanjs/cli/commit/51f39ca) 694 | 695 | ###    ❤️ Contributors 696 | 697 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   698 | 699 | ## [v1.0.0-beta.3](https://github.com/soybeanjs/cli/compare/v1.0.0-beta.2...v1.0.0-beta.3) (2023-12-10) 700 | 701 | ###    📖 Documentation 702 | 703 | - **projects**: fix CHANGELOG.md  -  by @honghuangdc [(19fb6)](https://github.com/soybeanjs/cli/commit/19fb644) 704 | 705 | ###    ❤️ Contributors 706 | 707 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   708 | 709 | ## [v1.0.0-beta.2](https://github.com/soybeanjs/cli/compare/v1.0.0-beta.1...v1.0.0-beta.2) (2023-12-10) 710 | 711 | ###    📖 Documentation 712 | 713 | - **projects**: fix CHANGELOG.md  -  by @honghuangdc [(7049b)](https://github.com/soybeanjs/cli/commit/7049b55) 714 | 715 | ###    🏡 Chore 716 | 717 | - **deps**: update deps: changelog  -  by @honghuangdc [(3c9f5)](https://github.com/soybeanjs/cli/commit/3c9f5a0) 718 | 719 | ###    ❤️ Contributors 720 | 721 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   722 | 723 | ## [v1.0.0-beta.1](https://github.com/soybeanjs/cli/compare/v1.0.0-beta.0...v1.0.0-beta.1) (2023-12-10) 724 | 725 | ###    🚀 Features 726 | 727 | - **projects**: support sun cli in mjs  -  by @honghuangdc [(aea2d)](https://github.com/soybeanjs/cli/commit/aea2d03) 728 | 729 | ###    ❤️ Contributors 730 | 731 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   732 | 733 | ## [v1.0.0-beta.0](https://github.com/soybeanjs/cli/compare/v0.8.10...v1.0.0-beta.0) (2023-12-10) 734 | 735 | ###    🚀 Features 736 | 737 | - **projects**: 738 | - remove deprecated command  -  by @honghuangdc [(7e15f)](https://github.com/soybeanjs/cli/commit/7e15f0b) 739 | - add short options  -  by @honghuangdc [(14ecd)](https://github.com/soybeanjs/cli/commit/14ecdb8) 740 | - add option cleanupDir for cleanup command  -  by @honghuangdc [(3ec57)](https://github.com/soybeanjs/cli/commit/3ec577a) 741 | 742 | ###    ❤️ Contributors 743 | 744 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   745 | 746 | ## [v0.8.10](https://github.com/soybeanjs/cli/compare/v0.8.9...v0.8.10) (2023-12-10) 747 | 748 | ###    🐞 Bug Fixes 749 | 750 | - **projects**: remove options of sync-npmmirror  -  by @honghuangdc [(0b17b)](https://github.com/soybeanjs/cli/commit/0b17b90) 751 | 752 | ###    ❤️ Contributors 753 | 754 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   755 | 756 | ## [v0.8.9](https://github.com/soybeanjs/cli/compare/v0.8.8...v0.8.9) (2023-12-10) 757 | 758 | ###    🐞 Bug Fixes 759 | 760 | - **projects**: fix templates vscode settings  -  by @honghuangdc [(ea412)](https://github.com/soybeanjs/cli/commit/ea4122b) 761 | 762 | ###    💅 Refactors 763 | 764 | - **projects**: remove command sync-npmmirror  -  by @honghuangdc [(1c589)](https://github.com/soybeanjs/cli/commit/1c589b6) 765 | 766 | ###    🏡 Chore 767 | 768 | - **projects**: update vscode settings  -  by @honghuangdc [(edbb7)](https://github.com/soybeanjs/cli/commit/edbb733) 769 | 770 | ###    🤖 CI 771 | 772 | - **projects**: update release.yml  -  by @honghuangdc [(5facb)](https://github.com/soybeanjs/cli/commit/5facb25) 773 | 774 | ###    ❤️ Contributors 775 | 776 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   777 | 778 | ## [v0.8.8](https://github.com/soybeanjs/cli/compare/v0.8.7...v0.8.8) (2023-12-09) 779 | 780 | ###    🐞 Bug Fixes 781 | 782 | - **projects**: fix release.yml  -  by @honghuangdc [(ffdf8)](https://github.com/soybeanjs/cli/commit/ffdf83b) 783 | 784 | ###    ❤️ Contributors 785 | 786 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   787 | 788 | ## [v0.8.7](https://github.com/soybeanjs/cli/compare/v0.8.6...v0.8.7) (2023-12-09) 789 | 790 | ###    🐞 Bug Fixes 791 | 792 | - **projects**: fix command sync-npmmirror --syncName  -  by @honghuangdc [(ec545)](https://github.com/soybeanjs/cli/commit/ec545f2) 793 | 794 | ###    ❤️ Contributors 795 | 796 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   797 | 798 | ## [v0.8.6](https://github.com/soybeanjs/cli/compare/v0.8.5...v0.8.6) (2023-12-09) 799 | 800 | ###    📖 Documentation 801 | 802 | - **projects**: update README.md  -  by @honghuangdc [(e8dd5)](https://github.com/soybeanjs/cli/commit/e8dd574) 803 | 804 | ###    🏡 Chore 805 | 806 | - **projects**: 807 | - update packageManager  -  by @honghuangdc [(ee2de)](https://github.com/soybeanjs/cli/commit/ee2debd) 808 | - update deps, config  -  by @honghuangdc [(09a7a)](https://github.com/soybeanjs/cli/commit/09a7a9e) 809 | - perf template-vue  -  by @honghuangdc [(50433)](https://github.com/soybeanjs/cli/commit/5043307) 810 | 811 | ###    🤖 CI 812 | 813 | - **projects**: update release.yml  -  by @honghuangdc [(fec98)](https://github.com/soybeanjs/cli/commit/fec98a6) 814 | 815 | ###    ❤️ Contributors 816 | 817 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   818 | 819 | ## [v0.8.5](https://github.com/soybeanjs/cli/compare/v0.8.4...v0.8.5) (2023-12-09) 820 | 821 | ###    🚀 Features 822 | 823 | - **projects**: 824 | - sync-npmmirror support multi packages  -  by @honghuangdc [(c4899)](https://github.com/soybeanjs/cli/commit/c489965) 825 | - add release command wqoptions  -  by @honghuangdc [(759c9)](https://github.com/soybeanjs/cli/commit/759c9d7) 826 | 827 | ###    📖 Documentation 828 | 829 | - **projects**: update README.md  -  by @honghuangdc [(bf31f)](https://github.com/soybeanjs/cli/commit/bf31f15) 830 | 831 | ###    ❤️ Contributors 832 | 833 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   834 | 835 | ## [v0.8.4](https://github.com/soybeanjs/cli/compare/v0.8.3...v0.8.4) (2023-12-09) 836 | 837 | ###    🚀 Features 838 | 839 | - **projects**: add command: sync-npmmirror  -  by @honghuangdc [(2fabc)](https://github.com/soybeanjs/cli/commit/2fabca6) 840 | 841 | ###    🏡 Chore 842 | 843 | - **projects**: update create-soybean config, add README.md  -  by @honghuangdc [(3dcf2)](https://github.com/soybeanjs/cli/commit/3dcf2a7) 844 | 845 | ###    🤖 CI 846 | 847 | - **projects**: update relase.yml  -  by @honghuangdc [(fa282)](https://github.com/soybeanjs/cli/commit/fa28282) 848 | 849 | ###    ❤️ Contributors 850 | 851 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   852 | 853 | ## [v0.8.3](https://github.com/soybeanjs/cli/compare/v0.8.2...v0.8.3) (2023-12-08) 854 | 855 | ###    🐞 Bug Fixes 856 | 857 | - **projects**: fix ts template alias  -  by @honghuangdc [(e917f)](https://github.com/soybeanjs/cli/commit/e917fd8) 858 | 859 | ###    ❤️ Contributors 860 | 861 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   862 | 863 | ## [v0.8.2](https://github.com/soybeanjs/cli/compare/v0.8.1...v0.8.2) (2023-12-08) 864 | 865 | ###    🐞 Bug Fixes 866 | 867 | - **projects**: fix create-soybean templates  -  by @honghuangdc [(1731d)](https://github.com/soybeanjs/cli/commit/1731dae) 868 | 869 | ###    ❤️ Contributors 870 | 871 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   872 | 873 | ## [v0.8.1](https://github.com/soybeanjs/cli/compare/v0.8.0...v0.8.1) (2023-12-08) 874 | 875 | ###    🏡 Chore 876 | 877 | - **projects**: update deps, config, template  -  by @honghuangdc [(9df58)](https://github.com/soybeanjs/cli/commit/9df58e9) 878 | 879 | ###    ❤️ Contributors 880 | 881 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   882 | 883 | ## [v0.8.0](https://github.com/soybeanjs/cli/compare/v0.7.9...v0.8.0) (2023-12-06) 884 | 885 | ###    🚀 Features 886 | 887 | - **projects**: update deps and use eslint flat config  -  by @honghuangdc [(37658)](https://github.com/soybeanjs/cli/commit/376583a) 888 | 889 | ###    🏡 Chore 890 | 891 | - **deps**: update deps  -  by @honghuangdc [(7cc52)](https://github.com/soybeanjs/cli/commit/7cc524c) 892 | - **projects**: update config  -  by @honghuangdc [(01437)](https://github.com/soybeanjs/cli/commit/01437f9) 893 | 894 | ###    ❤️ Contributors 895 | 896 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   897 | 898 | ## [v0.7.9](https://github.com/soybeanjs/cli/compare/v0.7.8...v0.7.9) (2023-11-15) 899 | 900 | ###    🐞 Bug Fixes 901 | 902 | - **projects**: fix version  -  by @honghuangdc [(88b4b)](https://github.com/soybeanjs/cli/commit/88b4bcc) 903 | 904 | ###    ❤️ Contributors 905 | 906 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   907 | 908 | ## [v0.7.8](https://github.com/soybeanjs/cli/compare/v0.7.7...v0.7.8) (2023-11-15) 909 | 910 | ###    🏡 Chore 911 | 912 | - **deps**: update deps  -  by @honghuangdc [(b0d59)](https://github.com/soybeanjs/cli/commit/b0d5938) 913 | 914 | ###    ❤️ Contributors 915 | 916 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   917 | 918 | ## [v0.7.7](https://github.com/soybeanjs/cli/compare/v0.7.6...v0.7.7) (2023-11-06) 919 | 920 | ###    🐞 Bug Fixes 921 | 922 | - **projects**: 923 | - fix create-soybean template  -  by @honghuangdc [(a8311)](https://github.com/soybeanjs/cli/commit/a831124) 924 | - fix create-soybean build export  -  by @honghuangdc [(6b005)](https://github.com/soybeanjs/cli/commit/6b0057f) 925 | - fix create-soybean build export  -  by @honghuangdc [(11e0c)](https://github.com/soybeanjs/cli/commit/11e0c52) 926 | 927 | ###    ❤️ Contributors 928 | 929 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   930 | 931 | ## [v0.7.7-beta.2](https://github.com/soybeanjs/cli/compare/v0.7.7-beta.1...v0.7.7-beta.2) (2023-11-06) 932 | 933 | ###    🐞 Bug Fixes 934 | 935 | - **projects**: fix create-soybean build export  -  by @honghuangdc [(11e0c)](https://github.com/soybeanjs/cli/commit/11e0c52) 936 | 937 | ###    ❤️ Contributors 938 | 939 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   940 | 941 | ## [v0.7.7-beta.1](https://github.com/soybeanjs/cli/compare/v0.7.7-beta.0...v0.7.7-beta.1) (2023-11-06) 942 | 943 | ###    🐞 Bug Fixes 944 | 945 | - **projects**: fix create-soybean build export  -  by @honghuangdc [(6b005)](https://github.com/soybeanjs/cli/commit/6b0057f) 946 | 947 | ###    ❤️ Contributors 948 | 949 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   950 | 951 | ## [v0.7.7-beta.0](https://github.com/soybeanjs/cli/compare/v0.7.6...v0.7.7-beta.0) (2023-11-06) 952 | 953 | ###    🐞 Bug Fixes 954 | 955 | - **projects**: fix create-soybean template  -  by @honghuangdc [(a8311)](https://github.com/soybeanjs/cli/commit/a831124) 956 | 957 | ###    ❤️ Contributors 958 | 959 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   960 | 961 | ## [v0.7.6](https://github.com/soybeanjs/cli/compare/v0.7.5...v0.7.6) (2023-11-06) 962 | 963 | ###    🏡 Chore 964 | 965 | - **deps**: update deps  -  by @honghuangdc [(5be7f)](https://github.com/soybeanjs/cli/commit/5be7f8d) 966 | 967 | ###    ❤️ Contributors 968 | 969 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   970 | 971 | ## [v0.7.5](https://github.com/soybeanjs/cli/compare/v0.7.4...v0.7.5) (2023-10-31) 972 | 973 | ###    🏡 Chore 974 | 975 | - **deps**: update deps  -  by @honghuangdc [(c586e)](https://github.com/soybeanjs/cli/commit/c586e97) 976 | - **projects**: vscode settings  -  by @honghuangdc [(9ba38)](https://github.com/soybeanjs/cli/commit/9ba3829) 977 | 978 | ###    ❤️ Contributors 979 | 980 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   981 | 982 | ## [v0.7.4](https://github.com/soybeanjs/cli/compare/v0.7.3...v0.7.4) (2023-10-12) 983 | 984 | ###    🏡 Chore 985 | 986 | - **projects**: update template pkg version  -  by @honghuangdc [(8a8aa)](https://github.com/soybeanjs/cli/commit/8a8aa3e) 987 | 988 | ###    ❤️ Contributors 989 | 990 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   991 | 992 | ## [v0.7.3](https://github.com/soybeanjs/cli/compare/v0.7.2...v0.7.3) (2023-10-12) 993 | 994 | ###    🏡 Chore 995 | 996 | - **projects**: update locale and add command deprecated msg  -  by @honghuangdc [(5e03f)](https://github.com/soybeanjs/cli/commit/5e03f6b) 997 | 998 | ###    ❤️ Contributors 999 | 1000 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1001 | 1002 | ## [v0.7.2](https://github.com/soybeanjs/cli/compare/v0.7.1...v0.7.2) (2023-08-23) 1003 | 1004 | ###    🏡 Chore 1005 | 1006 | - **deps**: update deps  -  by @honghuangdc [(ef5d3)](https://github.com/soybeanjs/cli/commit/ef5d3d4) 1007 | 1008 | ###    🤖 CI 1009 | 1010 | - **projects**: update github action release.yml  -  by @honghuangdc [(45f7c)](https://github.com/soybeanjs/cli/commit/45f7cb6) 1011 | 1012 | ###    ❤️ Contributors 1013 | 1014 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1015 | 1016 | ## [v0.7.1](https://github.com/soybeanjs/cli/compare/v0.7.0...v0.7.1) (2023-08-23) 1017 | 1018 | ###    🐞 Bug Fixes 1019 | 1020 | - **projects**: encrypto token  -  by @honghuangdc [(824ea)](https://github.com/soybeanjs/cli/commit/824ea94) 1021 | 1022 | ###    ❤️ Contributors 1023 | 1024 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1025 | 1026 | ## [v0.7.0](https://github.com/soybeanjs/cli/compare/v0.6.9...v0.7.0) (2023-08-23) 1027 | 1028 | ###    🐞 Bug Fixes 1029 | 1030 | - **projects**: fix command action  -  by @honghuangdc [(4657f)](https://github.com/soybeanjs/cli/commit/4657fe1) 1031 | 1032 | ###    ❤️ Contributors 1033 | 1034 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1035 | 1036 | ## [v0.6.9](https://github.com/soybeanjs/cli/compare/v0.6.8...v0.6.9) (2023-08-23) 1037 | 1038 | ###    🏡 Chore 1039 | 1040 | - **deps**: decrease bumpp version  -  by @honghuangdc [(deba6)](https://github.com/soybeanjs/cli/commit/deba635) 1041 | 1042 | ###    ❤️ Contributors 1043 | 1044 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1045 | 1046 | ## [v0.6.8](https://github.com/soybeanjs/cli/compare/v0.6.7...v0.6.8) (2023-08-23) 1047 | 1048 | ###    🏡 Chore 1049 | 1050 | - **projects**: update deps  -  by @honghuangdc [(a3de7)](https://github.com/soybeanjs/cli/commit/a3de746) 1051 | 1052 | ###    ❤️ Contributors 1053 | 1054 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1055 | 1056 | ## [v0.6.7](https://github.com/soybeanjs/cli/compare/v0.6.6...v0.6.7) (2023-08-22) 1057 | 1058 | ###    🏡 Chore 1059 | 1060 | - **deps**: update deps  -  by @honghuangdc [(2b579)](https://github.com/soybeanjs/cli/commit/2b579a2) 1061 | 1062 | ###    ❤️ Contributors 1063 | 1064 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1065 | 1066 | ## [v0.6.6](https://github.com/soybeanjs/cli/compare/v0.6.5...v0.6.6) (2023-08-04) 1067 | 1068 | ###    🏡 Chore 1069 | 1070 | - **projects**: 1071 | - update  -  by @honghuangdc [(35d9d)](https://github.com/soybeanjs/cli/commit/35d9d6d) 1072 | - update deps & update config  -  by @honghuangdc [(0d001)](https://github.com/soybeanjs/cli/commit/0d0013f) 1073 | 1074 | ###    ❤️ Contributors 1075 | 1076 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1077 | 1078 | ## [v0.6.5](https://github.com/soybeanjs/cli/compare/v0.6.4...v0.6.5) (2023-07-28) 1079 | 1080 | ###    🐞 Bug Fixes 1081 | 1082 | - **projects**: fix create-soybean build  -  by @honghuangdc [(cb942)](https://github.com/soybeanjs/cli/commit/cb942e8) 1083 | 1084 | ###    ❤️ Contributors 1085 | 1086 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1087 | 1088 | ## [v0.6.4](https://github.com/soybeanjs/cli/compare/v0.6.3...v0.6.4) (2023-07-28) 1089 | 1090 | ###    🚀 Features 1091 | 1092 | - **projects**: complete create-soybean  -  by @honghuangdc [(dd593)](https://github.com/soybeanjs/cli/commit/dd5936c) 1093 | 1094 | ###    📖 Documentation 1095 | 1096 | - **projects**: fix CHANGELOG.md  -  by @honghuangdc [(f1c20)](https://github.com/soybeanjs/cli/commit/f1c20d1) 1097 | 1098 | ###    ❤️ Contributors 1099 | 1100 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1101 | 1102 | ## [v0.6.3](https://github.com/soybeanjs/cli/compare/v0.6.2...v0.6.3) (2023-07-27) 1103 | 1104 | ###    🐞 Bug Fixes 1105 | 1106 | - **projects**: fix types  -  by @honghuangdc [(18d10)](https://github.com/soybeanjs/cli/commit/18d10fc) 1107 | 1108 | ###    🏡 Chore 1109 | 1110 | - **projects**: 1111 | - add monorepo support & add create-soybean  -  by **Soybean** [(b2445)](https://github.com/soybeanjs/cli/commit/b2445ce) 1112 | - update package.json  -  by @honghuangdc [(5127b)](https://github.com/soybeanjs/cli/commit/5127b18) 1113 | - update deps & update config  -  by @honghuangdc [(a4eca)](https://github.com/soybeanjs/cli/commit/a4ecaff) 1114 | 1115 | ###    ❤️ Contributors 1116 | 1117 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1118 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1119 | 1120 | ## [v0.6.2](https://github.com/soybeanjs/cli/compare/v0.6.1...v0.6.2) (2023-06-13) 1121 | 1122 | ###    🏡 Chore 1123 | 1124 | - **deps**: update deps  -  by **Soybean** [(5f406)](https://github.com/soybeanjs/cli/commit/5f406d9) 1125 | - **projects**: update token  -  by **Soybean** [(76eba)](https://github.com/soybeanjs/cli/commit/76ebacc) 1126 | 1127 | ###    ❤️ Contributors 1128 | 1129 | 1130 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1131 | 1132 | ## [v0.6.1](https://github.com/soybeanjs/cli/compare/v0.6.0...v0.6.1) (2023-06-12) 1133 | 1134 | ###    📖 Documentation 1135 | 1136 | - **projects**: fix CHANGELOG.md  -  by **Soybean** [(c09bc)](https://github.com/soybeanjs/cli/commit/c09bcce) 1137 | 1138 | ###    🏡 Chore 1139 | 1140 | - **deps**: update @soybeanjs/changelog  -  by **Soybean** [(f9194)](https://github.com/soybeanjs/cli/commit/f919493) 1141 | 1142 | ###    ❤️ Contributors 1143 | 1144 | 1145 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1146 | 1147 | ## [v0.6.0](https://github.com/soybeanjs/cli/compare/v0.5.8...v0.6.0) (2023-06-12) 1148 | 1149 | ###    🐞 Bug Fixes 1150 | 1151 | - **projects**: fix cleanup command  -  by **Soybean** [(befe8)](https://github.com/soybeanjs/cli/commit/befe85c) 1152 | 1153 | ###    📖 Documentation 1154 | 1155 | - **projects**: fix CHANGELOG.md  -  by **Soybean** [(44a99)](https://github.com/soybeanjs/cli/commit/44a9977) 1156 | 1157 | ###    ❤️ Contributors 1158 | 1159 | 1160 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1161 | 1162 | ## [v0.5.8](https://github.com/soybeanjs/cli/compare/v0.5.7...v0.5.8) (2023-06-12) 1163 | 1164 | ###    🐞 Bug Fixes 1165 | 1166 | - **projects**: 1167 | - 修复git路径  -  by **刘璐** [(bfbc1)](https://github.com/soybeanjs/cli/commit/bfbc106) 1168 | - use path.join to concat path  -  by **Soybean** [(aba7f)](https://github.com/soybeanjs/cli/commit/aba7f2b) 1169 | - fix useSoybeanToken  -  by **Soybean** [(35f9b)](https://github.com/soybeanjs/cli/commit/35f9bfd) 1170 | 1171 | ###    🔥 Performance 1172 | 1173 | - **projects**: use for-of replace forEach  -  by **Soybean** [(34172)](https://github.com/soybeanjs/cli/commit/3417279) 1174 | 1175 | ###    📖 Documentation 1176 | 1177 | - **projects**: update README.md  -  by **Soybean** [(47929)](https://github.com/soybeanjs/cli/commit/47929ee) 1178 | 1179 | ###    ❤️ Contributors 1180 | 1181 | 1182 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  , [刘璐](mailto:hi.alue@qq.com) 1183 | 1184 | ## [v0.5.7](https://github.com/soybeanjs/cli/compare/v0.5.6...v0.5.7) (2023-06-11) 1185 | 1186 | ###    🐞 Bug Fixes 1187 | 1188 | - **projects**: 1189 | - fix module export  -  by **Soybean** [(96956)](https://github.com/soybeanjs/cli/commit/9695627) 1190 | - fix circel dependency  -  by **Soybean** [(4ad1e)](https://github.com/soybeanjs/cli/commit/4ad1e97) 1191 | 1192 | ###    ❤️ Contributors 1193 | 1194 | 1195 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1196 | 1197 | ## [v0.5.6](https://github.com/soybeanjs/cli/compare/v0.5.5...v0.5.6) (2023-06-11) 1198 | 1199 | ###    📖 Documentation 1200 | 1201 | - **projects**: update CHANGELOG.md  -  by **Soybean** [(a0e10)](https://github.com/soybeanjs/cli/commit/a0e10f5) 1202 | 1203 | ###    🏡 Chore 1204 | 1205 | - **projects**: add github token export  -  by **Soybean** [(89371)](https://github.com/soybeanjs/cli/commit/8937103) 1206 | 1207 | ###    ❤️ Contributors 1208 | 1209 | 1210 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1211 | 1212 | ## [v0.5.5](https://github.com/soybeanjs/cli/compare/v0.5.4...v0.5.5) (2023-06-11) 1213 | 1214 | ###    🚀 Features 1215 | 1216 | - **projects**: add cli config  -  by **Soybean** [(05d27)](https://github.com/soybeanjs/cli/commit/05d2746) 1217 | 1218 | ###    🐞 Bug Fixes 1219 | 1220 | - **projects**: fix release command  -  by **Soybean** [(2d6a3)](https://github.com/soybeanjs/cli/commit/2d6a3ac) 1221 | 1222 | ###    🏡 Chore 1223 | 1224 | - **deps**: update deps  -  by **Soybean** [(60453)](https://github.com/soybeanjs/cli/commit/604537a) 1225 | - **projects**: update package.json  -  by **Soybean** [(f064f)](https://github.com/soybeanjs/cli/commit/f064fe1) 1226 | 1227 | ###    ❤️ Contributors 1228 | 1229 | 1230 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1231 | 1232 | ## [v0.5.4](https://github.com/soybeanjs/cli/compare/v0.5.3...v0.5.4) (2023-06-07) 1233 | 1234 | ###    🐞 Bug Fixes 1235 | 1236 | - **projects**: add githubToken for @soybeanjs/changelog  -  by **Soybean** [(142ff)](https://github.com/soybeanjs/cli/commit/142ff1b) 1237 | 1238 | ###    ❤️ Contributors 1239 | 1240 | 1241 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1242 | 1243 | ## [v0.5.3](https://github.com/soybeanjs/cli/compare/v0.5.2...v0.5.3) (2023-06-07) 1244 | 1245 | ###    💅 Refactors 1246 | 1247 | - **projects**: extract code about changelog into library @soybeanjs/changelog  -  by **Soybean** [(52838)](https://github.com/soybeanjs/cli/commit/52838c5) 1248 | 1249 | ###    ❤️ Contributors 1250 | 1251 | 1252 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1253 | 1254 | ## [v0.5.2](https://github.com/soybeanjs/cli/compare/v0.5.1...v0.5.2) (2023-06-06) 1255 | 1256 | ###    🐞 Bug Fixes 1257 | 1258 | - **projects**: fix version title order of changelog  -  by **Soybean** [(81e35)](https://github.com/soybeanjs/cli/commit/81e35ae) 1259 | 1260 | ###    ❤️ Contributors 1261 | 1262 | 1263 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1264 | 1265 | ## [v0.5.1](https://github.com/soybeanjs/cli/compare/v0.5.0...v0.5.1) (2023-06-06) 1266 | 1267 | ###    🚀 Features 1268 | 1269 | - **projects**: changelog support alpha and beta version  -  by **Soybean** [(a23e4)](https://github.com/soybeanjs/cli/commit/a23e4a8) 1270 | 1271 | ###    🐞 Bug Fixes 1272 | 1273 | - **projects**: fix changelog new version without date  -  by **Soybean** [(36138)](https://github.com/soybeanjs/cli/commit/361388b) 1274 | 1275 | ###    🔥 Performance 1276 | 1277 | - **projects**: perf changelog get github user  -  by **Soybean** [(38587)](https://github.com/soybeanjs/cli/commit/3858753) 1278 | 1279 | ###    📖 Documentation 1280 | 1281 | - **projects**: update README.md  -  by **Soybean** [(6f217)](https://github.com/soybeanjs/cli/commit/6f21797) 1282 | 1283 | ###    🏡 Chore 1284 | 1285 | - **projects**: update github_token  -  by **Soybean** [(15651)](https://github.com/soybeanjs/cli/commit/1565138) 1286 | 1287 | ###    ❤️ Contributors 1288 | 1289 | 1290 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1291 | 1292 | ## [v0.5.1-beta.0](https://github.com/soybeanjs/cli/compare/v0.5.0...v0.5.1-beta.0) (2023-06-06) 1293 | 1294 | ###    🐞 Bug Fixes 1295 | 1296 | - **projects**: fix changelog new version without date  -  by **Soybean** [(36138)](https://github.com/soybeanjs/cli/commit/361388b) 1297 | 1298 | ###    📖 Documentation 1299 | 1300 | - **projects**: update README.md  -  by **Soybean** [(6f217)](https://github.com/soybeanjs/cli/commit/6f21797) 1301 | 1302 | ###    🏡 Chore 1303 | 1304 | - **projects**: update github_token  -  by **Soybean** [(15651)](https://github.com/soybeanjs/cli/commit/1565138) 1305 | 1306 | ###    ❤️ Contributors 1307 | 1308 | 1309 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1310 | 1311 | ## [v0.5.0](https://github.com/soybeanjs/cli/compare/v0.4.2...v0.5.0) (2023-06-05) 1312 | 1313 | ###    🐞 Bug Fixes 1314 | 1315 | - **projects**: fix version date  -  by **Soybean** [(b50d8)](https://github.com/soybeanjs/cli/commit/b50d804) 1316 | 1317 | ###    🔥 Performance 1318 | 1319 | - **projects**: changelog contributor  -  by **Soybean** [(a3cf8)](https://github.com/soybeanjs/cli/commit/a3cf896) 1320 | 1321 | ###    📖 Documentation 1322 | 1323 | - **projects**: update CHANGELOG.md  -  by **Soybean** [(94d6f)](https://github.com/soybeanjs/cli/commit/94d6f97) 1324 | 1325 | ###    ❤️ Contributors 1326 | 1327 | 1328 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1329 | 1330 | ## [v0.4.2](https://github.com/soybeanjs/cli/compare/v0.4.1...v0.4.2) (2023-06-04) 1331 | 1332 | ###    🚀 Features 1333 | 1334 | - **projects**: 1335 | - add changelog command  -  by **Soybean** [(8bc95)](https://github.com/soybeanjs/cli/commit/8bc95c6) 1336 | - generate changelog by total tags  -  by **Soybean** [(9ee85)](https://github.com/soybeanjs/cli/commit/9ee85ff) 1337 | - add release command  -  by **Soybean** [(00890)](https://github.com/soybeanjs/cli/commit/008908b) 1338 | - changelog version support the latest verison in package.json  -  by **Soybean** [(8cea1)](https://github.com/soybeanjs/cli/commit/8cea197) 1339 | 1340 | ###    🐞 Bug Fixes 1341 | 1342 | - **projects**: 1343 | - fix generate changelog timing  -  by **Soybean** [(a6f41)](https://github.com/soybeanjs/cli/commit/a6f41fe) 1344 | - fix release command  -  by **Soybean** [(3e3c4)](https://github.com/soybeanjs/cli/commit/3e3c44f) 1345 | - fix execa can't run in commonjs  -  by **Soybean** [(646a7)](https://github.com/soybeanjs/cli/commit/646a7b3) 1346 | - release command add git push  -  by **Soybean** [(52828)](https://github.com/soybeanjs/cli/commit/52828ff) 1347 | 1348 | ###    📖 Documentation 1349 | 1350 | - **projects**: update CHANGELOG.md title  -  by **Soybean** [(4085e)](https://github.com/soybeanjs/cli/commit/4085eb7) 1351 | 1352 | ###    ❤️ Contributors 1353 | 1354 | 1355 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1356 | 1357 | ## [v0.4.1](https://github.com/soybeanjs/cli/compare/v0.4.0...v0.4.1) (2023-06-01) 1358 | 1359 | ###    🐞 Bug Fixes 1360 | 1361 | - **projects**: fix repository url  -  by **Soybean** [(f6515)](https://github.com/soybeanjs/cli/commit/f6515ec) 1362 | 1363 | ###    ❤️ Contributors 1364 | 1365 | 1366 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1367 | 1368 | ## [v0.4.0](https://github.com/soybeanjs/cli/compare/v0.3.2...v0.4.0) (2023-06-01) 1369 | 1370 | ###    🚀 Features 1371 | 1372 | - **projects**: add eslint-prettier and lint-staged command  -  by **Soybean** [(27330)](https://github.com/soybeanjs/cli/commit/2733099) 1373 | 1374 | ###    📖 Documentation 1375 | 1376 | - **projects**: CHANGELOG.md  -  by **Soybean** [(26ad9)](https://github.com/soybeanjs/cli/commit/26ad987) 1377 | 1378 | ###    🏡 Chore 1379 | 1380 | - **projects**: 1381 | - update repository url  -  by **Soybean** [(53f2f)](https://github.com/soybeanjs/cli/commit/53f2f21) 1382 | - use cac replace commander  -  by **Soybean** [(1163e)](https://github.com/soybeanjs/cli/commit/1163ef7) 1383 | 1384 | ###    ❤️ Contributors 1385 | 1386 | 1387 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1388 | 1389 | ## [v0.3.2](https://github.com/soybeanjs/cli/compare/v0.3.1...v0.3.2) (2023-05-31) 1390 | 1391 | ###    📖 Documentation 1392 | 1393 | - **projects**: 1394 | - CHANGELOG.md  -  by **Soybean** [(f05a7)](https://github.com/soybeanjs/cli/commit/f05a724) 1395 | - update README.md  -  by **Soybean** [(5b293)](https://github.com/soybeanjs/cli/commit/5b293d3) 1396 | 1397 | ###    ❤️ Contributors 1398 | 1399 | 1400 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1401 | 1402 | ## [v0.3.1](https://github.com/soybeanjs/cli/compare/v0.3.0...v0.3.1) (2023-05-31) 1403 | 1404 | ###    📖 Documentation 1405 | 1406 | - **projects**: CHANGELOG.md  -  by **Soybean** [(86d2a)](https://github.com/soybeanjs/cli/commit/86d2ac1) 1407 | 1408 | ###    🏡 Chore 1409 | 1410 | - **deps**: update deps  -  by **Soybean** [(0a8d0)](https://github.com/soybeanjs/cli/commit/0a8d0aa) 1411 | - **projects**: update prettier write files  -  by **Soybean** [(0a2cc)](https://github.com/soybeanjs/cli/commit/0a2ccd4) 1412 | 1413 | ###    ❤️ Contributors 1414 | 1415 | 1416 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1417 | 1418 | ## [v0.3.0](https://github.com/soybeanjs/cli/compare/v0.2.12...v0.3.0) (2023-05-28) 1419 | 1420 | ###    🏡 Chore 1421 | 1422 | - **projects**: 1423 | - remove release command  -  by **Soybean** [(39969)](https://github.com/soybeanjs/cli/commit/3996991) 1424 | - use unbuild replace tsup  -  by **Soybean** [(042b7)](https://github.com/soybeanjs/cli/commit/042b701) 1425 | - add update-version script  -  by **Soybean** [(8d78d)](https://github.com/soybeanjs/cli/commit/8d78d27) 1426 | 1427 | ###    ❤️ Contributors 1428 | 1429 | 1430 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1431 | 1432 | ## [v0.2.12](https://github.com/soybeanjs/cli/compare/v0.2.11...v0.2.12) (2023-05-27) 1433 | 1434 | ###    🏡 Chore 1435 | 1436 | - **projects**: 1437 | - add githublogen replace changelogithub  -  by **Soybean** [(908bc)](https://github.com/soybeanjs/cli/commit/908bcd4) 1438 | - update lint-staged config  -  by **Soybean** [(45607)](https://github.com/soybeanjs/cli/commit/456077a) 1439 | - **release**: 1440 | - v0.2.12  -  by **Soybean** [(84370)](https://github.com/soybeanjs/cli/commit/843703e) 1441 | 1442 | ###    ❤️ Contributors 1443 | 1444 | 1445 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1446 | 1447 | ## [v0.2.11](https://github.com/soybeanjs/cli/compare/v0.2.10...v0.2.11) (2023-05-25) 1448 | 1449 | ###    🏡 Chore 1450 | 1451 | - **projects**: update changelogithub config  -  by **Soybean** [(c053a)](https://github.com/soybeanjs/cli/commit/c053aa7) 1452 | - **release**: v0.2.11  -  by **Soybean** [(dc223)](https://github.com/soybeanjs/cli/commit/dc22399) 1453 | 1454 | ###    ❤️ Contributors 1455 | 1456 | 1457 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1458 | 1459 | ## [v0.2.10](https://github.com/soybeanjs/cli/compare/v0.2.9...v0.2.10) (2023-05-25) 1460 | 1461 | ###    📖 Documentation 1462 | 1463 | - **projects**: update README.md  -  by **Soybean** [(4daf5)](https://github.com/soybeanjs/cli/commit/4daf5e2) 1464 | 1465 | ###    🏡 Chore 1466 | 1467 | - **release**: v0.2.10  -  by **Soybean** [(51a79)](https://github.com/soybeanjs/cli/commit/51a799e) 1468 | 1469 | ###    ❤️ Contributors 1470 | 1471 | 1472 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1473 | 1474 | ## [v0.2.9](https://github.com/soybeanjs/cli/compare/v0.2.8...v0.2.9) (2023-05-25) 1475 | 1476 | ###    🏡 Chore 1477 | 1478 | - **projects**: fix release script  -  by **Soybean** [(52bfe)](https://github.com/soybeanjs/cli/commit/52bfe9a) 1479 | - **release**: v0.2.9  -  by **Soybean** [(4bc57)](https://github.com/soybeanjs/cli/commit/4bc578b) 1480 | 1481 | ###    ❤️ Contributors 1482 | 1483 | 1484 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1485 | 1486 | ## [v0.2.8](https://github.com/soybeanjs/cli/compare/v0.2.7...v0.2.8) (2023-05-25) 1487 | 1488 | ###    🏡 Chore 1489 | 1490 | - **projects**: update release script  -  by **Soybean** [(d39ee)](https://github.com/soybeanjs/cli/commit/d39ee91) 1491 | - **release**: v0.2.8  -  by **Soybean** [(af12d)](https://github.com/soybeanjs/cli/commit/af12d78) 1492 | 1493 | ###    ❤️ Contributors 1494 | 1495 | 1496 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1497 | 1498 | ## [v0.2.7](https://github.com/soybeanjs/cli/compare/v0.2.6...v0.2.7) (2023-05-25) 1499 | 1500 | ###    🏡 Chore 1501 | 1502 | - **projects**: add release command status  -  by **Soybean** [(d9ee4)](https://github.com/soybeanjs/cli/commit/d9ee450) 1503 | - **release**: v0.2.7  -  by **Soybean** [(c057a)](https://github.com/soybeanjs/cli/commit/c057aad) 1504 | 1505 | ###    ❤️ Contributors 1506 | 1507 | 1508 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1509 | 1510 | ## [v0.2.6](https://github.com/soybeanjs/cli/compare/v0.2.5...v0.2.6) (2023-05-25) 1511 | 1512 | ###    🚀 Features 1513 | 1514 | - **projects**: add release command  -  by **Soybean** [(1a4a6)](https://github.com/soybeanjs/cli/commit/1a4a641) 1515 | 1516 | ###    🏡 Chore 1517 | 1518 | - **release**: v0.2.6  -  by **Soybean** [(fa7ea)](https://github.com/soybeanjs/cli/commit/fa7ea00) 1519 | 1520 | ###    ❤️ Contributors 1521 | 1522 | 1523 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1524 | 1525 | ## [v0.2.5](https://github.com/soybeanjs/cli/compare/v0.2.4...v0.2.5) (2023-05-25) 1526 | 1527 | ###    📖 Documentation 1528 | 1529 | - **projects**: update README.md [更新README.md]  -  by **Soybean** [(a2b1b)](https://github.com/soybeanjs/cli/commit/a2b1b34) 1530 | 1531 | ###    🏡 Chore 1532 | 1533 | - **projects**: 1534 | - remove bumpp and conventional-changelog-cli [去除依赖bumpp和conventional-changelog-cli]  -  by **Soybean** [(4bac6)](https://github.com/soybeanjs/cli/commit/4bac6d4) 1535 | - update package.json [更新package.json]  -  by **Soybean** [(dd3e1)](https://github.com/soybeanjs/cli/commit/dd3e1f9) 1536 | - add bumpp  -  by **Soybean** [(14c09)](https://github.com/soybeanjs/cli/commit/14c092e) 1537 | 1538 | ###    ❤️ Contributors 1539 | 1540 | 1541 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1542 | 1543 | ## [v0.2.4](https://github.com/soybeanjs/cli/compare/v0.2.3...v0.2.4) (2023-05-25) 1544 | 1545 | ###    🐞 Bug Fixes 1546 | 1547 | - **projects**: 1548 | - fix github workflow  -  by **Soybean** [(7f2c8)](https://github.com/soybeanjs/cli/commit/7f2c82f) 1549 | - fix github workflow  -  by **Soybean** [(253b4)](https://github.com/soybeanjs/cli/commit/253b418) 1550 | 1551 | ###    📖 Documentation 1552 | 1553 | - **projects**: update CHANGELOG.md [更新日志文件]  -  by **Soybean** [(18271)](https://github.com/soybeanjs/cli/commit/18271b7) 1554 | 1555 | ###    🏡 Chore 1556 | 1557 | - **main**: 1558 | - release 0.2.3  -  by **github-actions[bot]** [(e6285)](https://github.com/soybeanjs/cli/commit/e628595) 1559 | - release 0.2.4  -  by **github-actions[bot]** [(25665)](https://github.com/soybeanjs/cli/commit/2566553) 1560 | 1561 | ###    ❤️ Contributors 1562 | 1563 | 1564 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  , [github-actions[bot]](mailto:41898282+github-actions[bot]@users.noreply.github.com) 1565 | 1566 | ## [v0.2.3](https://github.com/soybeanjs/cli/compare/v0.2.2...v0.2.3) (2023-05-25) 1567 | 1568 | ###    🏡 Chore 1569 | 1570 | - **project**: create release-please.yml [创建github workflows]  -  by @honghuangdc [(4edff)](https://github.com/soybeanjs/cli/commit/4edff44) 1571 | - **projects**: remove github action  -  by **Soybean** [(a6530)](https://github.com/soybeanjs/cli/commit/a65308e) 1572 | 1573 | ###    ❤️ Contributors 1574 | 1575 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1576 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  ,  1577 | 1578 | ## [v0.2.2](https://github.com/soybeanjs/cli/compare/v0.2.1...v0.2.2) (2023-05-25) 1579 | 1580 | ###    🏡 Chore 1581 | 1582 | - **projects**: add changelog [添加日志]  -  by **Soybean** [(f72dc)](https://github.com/soybeanjs/cli/commit/f72dce8) 1583 | 1584 | ###    ❤️ Contributors 1585 | 1586 | 1587 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1588 | 1589 | ## [v0.2.1](https://github.com/soybeanjs/cli/compare/v0.2.0...v0.2.1) (2023-05-25) 1590 | 1591 | ###    🏡 Chore 1592 | 1593 | - **deps**: 1594 | - update deps [升级依赖]  -  by **Soybean** [(367eb)](https://github.com/soybeanjs/cli/commit/367eb63) 1595 | - **projects**: 1596 | - add github action [添加github action]  -  by **Soybean** [(85872)](https://github.com/soybeanjs/cli/commit/858724c) 1597 | - update commit config [更新git commit配置]  -  by **Soybean** [(a0ebc)](https://github.com/soybeanjs/cli/commit/a0ebc05) 1598 | - **types**: 1599 | - add node type  -  by **Soybean** [(aba8d)](https://github.com/soybeanjs/cli/commit/aba8db1) 1600 | 1601 | ###    ❤️ Contributors 1602 | 1603 | 1604 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1605 | 1606 | ## [v0.2.0](https://github.com/soybeanjs/cli/compare/v0.1.9...v0.2.0) (2023-05-13) 1607 | 1608 | ###    📦 Build 1609 | 1610 | - **deps**: update deps [升级依赖]  -  by **Soybean** [(e67d4)](https://github.com/soybeanjs/cli/commit/e67d488) 1611 | 1612 | ###    ❤️ Contributors 1613 | 1614 | 1615 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1616 | 1617 | ## [v0.1.9](https://github.com/soybeanjs/cli/compare/v0.1.8...v0.1.9) (2023-04-27) 1618 | 1619 | ###    💅 Refactors 1620 | 1621 | - **projects**: use enquirer to replace prompts  -  by **Soybean** [(63fa4)](https://github.com/soybeanjs/cli/commit/63fa4f1) 1622 | 1623 | ###    ❤️ Contributors 1624 | 1625 | 1626 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1627 | 1628 | ## [v0.1.8](https://github.com/soybeanjs/cli/compare/v0.1.7...v0.1.8) (2023-04-22) 1629 | 1630 | ###    🐞 Bug Fixes 1631 | 1632 | - **projects**: fix cleanup on windows [修复cleanup命令在windows上的问题]  -  by **Soybean** [(baa02)](https://github.com/soybeanjs/cli/commit/baa02bb) 1633 | 1634 | ###    ❤️ Contributors 1635 | 1636 | 1637 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1638 | 1639 | ## [v0.1.7](https://github.com/soybeanjs/cli/compare/v0.1.6...v0.1.7) (2023-03-11) 1640 | 1641 | ###    💅 Refactors 1642 | 1643 | - **projects**: add format command  -  by **Soybean** [(4d033)](https://github.com/soybeanjs/cli/commit/4d033c1) 1644 | 1645 | ###    ❤️ Contributors 1646 | 1647 | 1648 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1649 | 1650 | ## [v0.1.6](https://github.com/soybeanjs/cli/compare/v0.1.5...v0.1.6) (2023-01-05) 1651 | 1652 | ###    📦 Build 1653 | 1654 | - **projects**: fix cleanup script  -  by **Soybean** [(6432b)](https://github.com/soybeanjs/cli/commit/6432b14) 1655 | 1656 | ###    ❤️ Contributors 1657 | 1658 | 1659 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1660 | 1661 | ## [v0.1.5](https://github.com/soybeanjs/cli/compare/v0.1.4...v0.1.5) (2023-01-05) 1662 | 1663 | ###    🚀 Features 1664 | 1665 | - **projects**: add some scripts  -  by **Soybean** [(752b7)](https://github.com/soybeanjs/cli/commit/752b7f6) 1666 | 1667 | ###    ❤️ Contributors 1668 | 1669 | 1670 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1671 | 1672 | ## [v0.1.4](https://github.com/soybeanjs/cli/compare/v0.1.3...v0.1.4) (2022-12-10) 1673 | 1674 | ###    🐞 Bug Fixes 1675 | 1676 | - **projects**: fix cz-git config, and import commitlint  -  by **Soybean** [(41b63)](https://github.com/soybeanjs/cli/commit/41b63e5) 1677 | 1678 | ###    💅 Refactors 1679 | 1680 | - **projects**: 1681 | - import cz-git  -  by **Soybean** [(65dbd)](https://github.com/soybeanjs/cli/commit/65dbde8) 1682 | - remove @commitlint/config-conventional  -  by **Soybean** [(3bce0)](https://github.com/soybeanjs/cli/commit/3bce01a) 1683 | 1684 | ###    📦 Build 1685 | 1686 | - **projects**: replace husky by simple-git-hooks  -  by **Soybean** [(d3bf4)](https://github.com/soybeanjs/cli/commit/d3bf4db) 1687 | 1688 | ###    ❤️ Contributors 1689 | 1690 | 1691 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1692 | 1693 | ## [v0.1.3](https://github.com/soybeanjs/cli/compare/v0.1.2...v0.1.3) (2022-11-08) 1694 | 1695 | ###    🐞 Bug Fixes 1696 | 1697 | - **projects**: add rimraf  -  by **Soybean** [(c2a27)](https://github.com/soybeanjs/cli/commit/c2a27db) 1698 | 1699 | ###    📦 Build 1700 | 1701 | - **projects**: 1702 | - add examples pkg  -  by **Soybean** [(66236)](https://github.com/soybeanjs/cli/commit/6623694) 1703 | - update config  -  by **Soybean** [(46461)](https://github.com/soybeanjs/cli/commit/4646167) 1704 | 1705 | ###    ❤️ Contributors 1706 | 1707 | 1708 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1709 | 1710 | ## [v0.1.2](https://github.com/soybeanjs/cli/compare/v0.1.1...v0.1.2) (2022-11-03) 1711 | 1712 | ###    📦 Build 1713 | 1714 | - **projects**: 1715 | - add tsconfig.json  -  by **Soybean** [(24b77)](https://github.com/soybeanjs/cli/commit/24b7755) 1716 | - update config  -  by **Soybean** [(d0d9a)](https://github.com/soybeanjs/cli/commit/d0d9a94) 1717 | 1718 | ###    ❤️ Contributors 1719 | 1720 | 1721 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1722 | 1723 | ## [v0.1.1](https://github.com/soybeanjs/cli/compare/v0.1.0...v0.1.1) (2022-11-03) 1724 | 1725 | ###    📦 Build 1726 | 1727 | - **projects**: 1728 | - update config  -  by **Soybean** [(48cf5)](https://github.com/soybeanjs/cli/commit/48cf58f) 1729 | - upadte package.json  -  by **Soybean** [(94b2e)](https://github.com/soybeanjs/cli/commit/94b2e6f) 1730 | - upadte config  -  by **Soybean** [(184a6)](https://github.com/soybeanjs/cli/commit/184a6e4) 1731 | 1732 | ###    ❤️ Contributors 1733 | 1734 | 1735 | [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   1736 | 1737 | 1738 | 1739 | --------------------------------------------------------------------------------