Vue 3 Boilerplate App v3
This Vue 3 Typescript project can be used as a template to help you get started developing smaller projects. Read through this README to have a better understanding of how this project is setup.
TODO
Reference ideas-scratch
for many of the changes you want to make.
-
Post Cloning Steps
(+cleanup)
Post Cloning Steps
-
Update
package.json
-
name
-
description
-
version
-
repository
-
bugs
-
homepage
-
-
Update certain code files
- Update
base
in~/vite.config.ts
to your repository name for deployments to work - Update
AppString
enums in~/src/constants/ui/string-enums.ts
to represent your app - Update
title
in~/index.html
to reflect the app name you use inui-enums.ts
- Update
name
andshort_name
in~/public/site.webmanifest
the app name - Update
start_url
in~/public/site.webmanifest
to deployed website address (home)
- Update
-
Update
GitHub
repository settings-
Add a Description
-
Add the Website
-
Add Topics
-
Update the
Include in the home page
section- Uncheck
Releases
- Uncheck
Packages
- Uncheck
Environments
- Uncheck
-
-
Generate a new Favicon here: https://favicon.io/ (credit original artists)
-
Update
README.md
- Change README main heading to your project name
- Add detailed project description
- Update the
Credits
section as needed - Remove unneeded sections (even this one once you are done)
Table of Contents
- Usage
- Project Creation Steps
- Package JSON Changes
- ES2020 Support
- Misc Setup Notes
- Additional Notes
- Credits
Usage
Install the project dependencies.
npm i
Launch the dev server site.
npm run dev
Build the project dist
directory.
npm run build
Run tests and coverage report (press q
to quit).
npm test
Build and deploy the dist
directory.
npm run deploy
Check for outdated packages.
npm outdated
Update packages based on package.json
version settings. Test updates to ensure they worked.
npm upgrade
Project Creation Steps
These are the general steps I took to create the initial project (vue3-boilerplate-app).
npm init vue@latest
(selecting YES for most options)npm i uuid
(random ids)npm i -D @types/uuid
npm i luxon
(Javascript date utilities)npm i -D @types/luxon
npm i dexie
(IndexedDB wrapper)npm i -D gh-pages
(GitHub Pages deployment)npm i -D @vitest/coverage-c8
(test coverage output)npm i @vueuse/core
(Vue component utilities)npm i chart.js vue-chart-3
(charts with a Vue wrapper)npm i quasar @quasar/extras
(Vue component framework)npm i -D @quasar/vite-plugin
Use the configurator tool to help setup Quasar for your specific project. It generates the files you'll need to copy over based on your selections.
https://quasar.dev/start/vite-plugin
These following files will need to be updated based on the configurator tool.
mains.ts
vite.config.ts
Package JSON Changes
Updated or added lines for testing and deployment. The deployment script makes a copy of the
index.html
in dist
as 404.html
to address complications related to routing. This let's you
avoid using hash based routing.
{
"scripts": {
"test": "vitest --environment jsdom",
"test:coverage": "vitest --environment jsdom --coverage",
"deploy": "npm run build && cd dist && cp index.html 404.html && cd .. && gh-pages -d dist -m Deployment"
}
}
ES2020 Support
Support for ES2020 language features was achieved by adding es2020
to the following files.
tsconfig.vitest.json
tsconfig.app.json
Misc Setup Notes
Please note the setup of the following when using this project.
.gitignore
.eslintrc.cjs
.prettierignore
.prettierre.json
/.vscode/extensions.json
Additional Notes
Recommended IDE Setup
VSCode + Volar (and disable Vetur) + TypeScript Vue Plugin (Volar).
.vue
Imports in TS
Type Support for TypeScript cannot handle type information for .vue
imports by default, so we replace the tsc
CLI
with vue-tsc
for type checking. In editors, we need
TypeScript Vue Plugin (Volar)
to make the TypeScript language service aware of .vue
types.
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a Take Over Mode that is more performant. You can enable it by the following steps:
- Disable the built-in TypeScript Extension
- Run
Extensions: Show Built-in Extensions
from VSCode's command palette - Find
TypeScript and JavaScript Language Features
, right click and selectDisable (Workspace)
- Run
- Reload the VSCode window by running
Developer: Reload Window
from the command palette.
Customize configuration
See Vite Configuration Reference.
Credits
Recognize the work of anyone whose material you used in the project here.