├── .editorconfig ├── .eslintrc.json ├── .github ├── commit-convention.md └── workflows │ ├── pr_commit.yml │ └── publish.yml ├── .gitignore ├── .husky └── commit-msg ├── .prettierignore ├── .prettierrc ├── .vscode ├── extensions.json └── settings.json ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── e2e └── vue3-vite-e2e │ ├── jest.config.ts │ ├── project.json │ ├── tests │ ├── component.spec.ts │ ├── cypress.spec.ts │ ├── docs.spec.ts │ ├── library.spec.ts │ ├── utils │ │ ├── async-commands.ts │ │ ├── index.ts │ │ ├── nx-project.ts │ │ ├── paths.ts │ │ ├── string-utils.ts │ │ └── utils.ts │ └── vue3-vite.spec.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── jest.config.ts ├── jest.preset.ts ├── nx.json ├── package.json ├── packages └── vue3-vite │ ├── .eslintrc.json │ ├── README.md │ ├── executors.json │ ├── generators.json │ ├── jest.config.ts │ ├── package.json │ ├── patch-nx-dep-graph.js │ ├── project.json │ ├── src │ ├── executors │ │ ├── build-app │ │ │ ├── executor.ts │ │ │ ├── schema.d.ts │ │ │ └── schema.json │ │ ├── build-docs │ │ │ ├── executor.ts │ │ │ ├── schema.d.ts │ │ │ └── schema.json │ │ ├── cypress │ │ │ ├── executor.ts │ │ │ ├── schema.d.ts │ │ │ └── schema.json │ │ ├── dev-server │ │ │ ├── executor.ts │ │ │ ├── schema.d.ts │ │ │ └── schema.json │ │ ├── docs-dev-server │ │ │ ├── executor.ts │ │ │ ├── schema.d.ts │ │ │ └── schema.json │ │ └── preview-server │ │ │ ├── executor.ts │ │ │ ├── schema.d.ts │ │ │ └── schema.json │ ├── external │ │ ├── copy-package-json-plugin.ts │ │ ├── index.ts │ │ └── tsconfig-base-aliases.ts │ ├── generators │ │ ├── component │ │ │ ├── files │ │ │ │ ├── __name__.cy.ts.template │ │ │ │ └── __name__.vue.template │ │ │ ├── generator.spec.ts │ │ │ ├── generator.ts │ │ │ ├── schema.d.ts │ │ │ └── schema.json │ │ ├── cypress │ │ │ ├── files │ │ │ │ ├── __dot__eslintrc.json.template │ │ │ │ ├── cypress.json.template │ │ │ │ ├── src │ │ │ │ │ ├── fixtures │ │ │ │ │ │ └── example.json │ │ │ │ │ ├── integration │ │ │ │ │ │ └── app.spec.ts.template │ │ │ │ │ ├── plugins │ │ │ │ │ │ └── index.js │ │ │ │ │ └── support │ │ │ │ │ │ ├── app.po.ts.template │ │ │ │ │ │ ├── commands.ts.template │ │ │ │ │ │ └── index.ts.template │ │ │ │ └── tsconfig.json.template │ │ │ ├── generator.spec.ts │ │ │ ├── generator.ts │ │ │ ├── schema.d.ts │ │ │ └── schema.json │ │ ├── docs │ │ │ ├── files │ │ │ │ ├── README.md.template │ │ │ │ └── docs │ │ │ │ │ ├── __dot__vitepress │ │ │ │ │ ├── config.js.template │ │ │ │ │ └── theme │ │ │ │ │ │ ├── Layout.vue │ │ │ │ │ │ ├── components │ │ │ │ │ │ ├── NavBar.vue │ │ │ │ │ │ └── NavBarTitle.vue │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── styles │ │ │ │ │ │ ├── layout.css │ │ │ │ │ │ └── vars.css │ │ │ │ │ ├── guide │ │ │ │ │ ├── index.md.template │ │ │ │ │ └── why.md │ │ │ │ │ ├── index.md.template │ │ │ │ │ └── public │ │ │ │ │ └── favicon.png │ │ │ ├── generator.spec.ts │ │ │ ├── generator.ts │ │ │ ├── schema.d.ts │ │ │ └── schema.json │ │ ├── library │ │ │ ├── files │ │ │ │ ├── __dot__babelrc │ │ │ │ ├── __dot__eslintrc.js │ │ │ │ ├── cypress │ │ │ │ │ ├── fixtures │ │ │ │ │ │ └── example.json │ │ │ │ │ ├── plugins │ │ │ │ │ │ └── index.ts.template │ │ │ │ │ └── support │ │ │ │ │ │ └── index.ts.template │ │ │ │ ├── jest.config.ts.template │ │ │ │ ├── postcss.config.mjs.template │ │ │ │ ├── src │ │ │ │ │ ├── assets │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ ├── index.ts.template │ │ │ │ │ ├── lib │ │ │ │ │ │ ├── MyWidget.spec.ts.template │ │ │ │ │ │ └── MyWidget.vue │ │ │ │ │ └── shims-vue.d.ts.template │ │ │ │ ├── tsconfig.json.template │ │ │ │ ├── tsconfig.lib.json.template │ │ │ │ ├── tsconfig.spec.json.template │ │ │ │ └── vite.config.ts.template │ │ │ ├── generator.spec.ts │ │ │ ├── generator.ts │ │ │ ├── root-files │ │ │ │ └── tsconfig │ │ │ │ │ └── tsconfig.base.json.template │ │ │ ├── schema.d.ts │ │ │ └── schema.json │ │ └── vue3-vite │ │ │ ├── files │ │ │ ├── README.md.template │ │ │ ├── __dot__babelrc │ │ │ ├── __dot__eslintrc.js │ │ │ ├── __dot__stylelintrc.js.template │ │ │ ├── cypress.json │ │ │ ├── cypress │ │ │ │ ├── fixtures │ │ │ │ │ └── example.json │ │ │ │ ├── plugins │ │ │ │ │ └── index.ts.template │ │ │ │ └── support │ │ │ │ │ └── index.ts.template │ │ │ ├── index.html.template │ │ │ ├── jest.config.ts.template │ │ │ ├── postcss.config.mjs.template │ │ │ ├── src │ │ │ │ ├── app │ │ │ │ │ ├── App.vue.template │ │ │ │ │ ├── components │ │ │ │ │ │ ├── CookiesConsent.spec.ts.template │ │ │ │ │ │ ├── CookiesConsent.vue.template │ │ │ │ │ │ └── widgets │ │ │ │ │ │ │ └── AppLogo.vue.template │ │ │ │ │ ├── i18n.ts.template │ │ │ │ │ ├── main.ts.template │ │ │ │ │ ├── router.ts.template │ │ │ │ │ ├── store.ts.template │ │ │ │ │ ├── translations │ │ │ │ │ │ └── en.json.template │ │ │ │ │ └── views │ │ │ │ │ │ └── HomePage.vue.template │ │ │ │ ├── assets │ │ │ │ │ ├── css │ │ │ │ │ │ ├── font.css.template │ │ │ │ │ │ └── global.css.template │ │ │ │ │ ├── font │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ └── img │ │ │ │ │ │ └── vue-logo.png │ │ │ │ ├── environments │ │ │ │ │ └── environment.ts │ │ │ │ ├── public │ │ │ │ │ └── favicon.png │ │ │ │ └── shims-vue.d.ts.template │ │ │ ├── tsconfig.json.template │ │ │ ├── tsconfig.spec.json.template │ │ │ └── vite.config.ts.template │ │ │ ├── generator.spec.ts │ │ │ ├── generator.ts │ │ │ ├── is-package-based-repo.spec.ts │ │ │ ├── is-package-based-repo.ts │ │ │ ├── root-files │ │ │ └── tsconfig │ │ │ │ └── tsconfig.base.json.template │ │ │ ├── schema.d.ts │ │ │ └── schema.json │ ├── index.ts │ └── util │ │ ├── custom-logger.ts │ │ ├── defaults.ts │ │ ├── generate-test-target.ts │ │ ├── path-alias.ts │ │ ├── server-utils.ts │ │ ├── test-framework.ts │ │ ├── utils.spec.ts │ │ └── utils.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── tools ├── scripts │ ├── release.js │ └── verifyCommit.js └── tsconfig.tools.json └── tsconfig.base.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "ignorePatterns": ["**/*"], 4 | "plugins": ["@nx"], 5 | "overrides": [ 6 | { 7 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 8 | "rules": { 9 | "@nx/enforce-module-boundaries": [ 10 | "error", 11 | { 12 | "enforceBuildableLibDependency": true, 13 | "allow": [], 14 | "depConstraints": [ 15 | { 16 | "sourceTag": "*", 17 | "onlyDependOnLibsWithTags": ["*"] 18 | } 19 | ] 20 | } 21 | ] 22 | } 23 | }, 24 | { 25 | "files": ["*.ts", "*.tsx"], 26 | "extends": ["plugin:@nx/typescript"], 27 | "rules": {} 28 | }, 29 | { 30 | "files": ["*.js", "*.jsx"], 31 | "extends": ["plugin:@nx/javascript"], 32 | "rules": {} 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /.github/commit-convention.md: -------------------------------------------------------------------------------- 1 | ## Git Commit Message Convention 2 | 3 | > This is adapted from [Vite's commit convention](https://github.com/vitejs/vite/blob/632a50acd693f4ba79af7d22f1df14cf20e66538/.github/commit-convention.md), which is adapter from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular). 4 | 5 | #### TL;DR: 6 | 7 | Messages must be matched by the following regex: 8 | 9 | ```js 10 | /^(revert: )?(feat|fix|docs|refactor|perf|test|workflow|build|ci|chore|wip|release)(\(.+\))?: .{1,50}(#\d+)?/; 11 | ``` 12 | 13 | #### Examples 14 | 15 | Appears under "Features" header, `dev` subheader: 16 | 17 | ``` 18 | feat(dev): add 'comments' option 19 | ``` 20 | 21 | Appears under "Bug Fixes" header, `dev` subheader, with a link to issue #28: 22 | 23 | ``` 24 | fix(dev): fix dev error 25 | 26 | close #28 27 | ``` 28 | 29 | or 30 | 31 | ``` 32 | fix(dev): fix dev error #28 33 | ``` 34 | 35 | Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation: 36 | 37 | ``` 38 | perf(build): remove 'foo' option 39 | 40 | BREAKING CHANGE: The 'foo' option has been removed. 41 | ``` 42 | 43 | The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header. 44 | 45 | ``` 46 | revert: feat(compiler): add 'comments' option 47 | 48 | This reverts commit 667ecc1654a317a13331b17617d973392f415f02. 49 | ``` 50 | 51 | ### Full Message Format 52 | 53 | A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**: 54 | 55 | ``` 56 | (): 57 | 58 | 59 | 60 |