A skeleton project with Vue.js, TypeScript, Bootstrap, Font Awesome, Less, Webpack, and Jest.
src/app.ts
: main file of the app that loads and configures all dependencies and kickstarts the parent Vue componentsrc/App.vue
: parent Vue component with basic app skeleton with header/nav, body, and footersrc/routes.ts
: configuration of routes (route
: binding acomponent
to a certainpath
)src/views/
: directory for all views; should be structured according to domain conceptssrc/common/
: directory for shared functionality that is not specific to a certain view or domain conceptsrc/config/index.ts
: configuration file with app or environment specific properties (e.g. to change the used Bootswatch theme)test/
: directory for all tests
# install dependencies
npm install
# serve locally with hot reload (localhost:9000, adjustable in webpack.dev.config.js)
npm start
# build for production with minification
npm run build
# run TypeScript linter
npm run lint
# run tests and create coverage reports
npm test
# run SonarQube analysis (configure sonar-project.properties first or pass parameters to choose the SonarQube instance)
npm run sonar
- Vetur (helps with Vue SFCs)
- TSLint (enforces coding rules in
tslint.json
) - Prettier (formats Vue files)
- EditorConfig (enforces code formatting in
.editorconfig
)