├── .gitignore ├── banner.png ├── tsconfig.json ├── README.md ├── index.d.ts ├── src ├── main.ts └── App.vue ├── babel.config.js ├── jest.config.js ├── index.html ├── webpack.config.js └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lmiller1990/vuejs-composition-course/HEAD/banner.png -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "esModuleInterop": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | I re-recorded the entire course as of June 2021. Get it here: https://github.com/lmiller1990/vuejs-composition-api-course 2 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | export default any 3 | } 4 | 5 | declare module '*.txt' { 6 | export default string 7 | } 8 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | 3 | import App from './App.vue' 4 | console.log(App) 5 | 6 | createApp(App).mount('#app') 7 | 8 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | ['@babel/preset-env', 4 | { 5 | targets: { 6 | node: 'current' 7 | } 8 | } 9 | ] 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 12 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'ts-jest', 3 | globals: {}, 4 | testEnvironment: 'jsdom', 5 | transform: { 6 | "^.+\\.vue$": "vue-jest", 7 | "^.+\\js$": "babel-jest" 8 | }, 9 | moduleFileExtensions: ['vue', 'js', 'json', 'jsx', 'ts', 'tsx', 'node'], 10 | moduleNameMapper: { 11 | "\\.txt$": 'identity-obj-proxy' 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | const { CleanWebpackPlugin } = require('clean-webpack-plugin') 3 | const { VueLoaderPlugin } = require('vue-loader') 4 | 5 | module.exports = { 6 | entry: './src/main.ts', 7 | output: { 8 | path: path.resolve(__dirname, './dist'), 9 | publicPath: '/dist/' 10 | }, 11 | module: { 12 | rules: [ 13 | { 14 | test: /\.vue$/, 15 | loader: 'vue-loader' 16 | }, 17 | { 18 | test: /\.ts$/, 19 | loader: 'ts-loader', 20 | options: { 21 | appendTsSuffixTo: [/\.vue/] 22 | } 23 | }, 24 | { 25 | test: /\.css$/i, 26 | use: [ 27 | 'style-loader', 28 | 'css-loader', 29 | ] 30 | }, 31 | { 32 | test: /\.txt$/i, 33 | use: 'raw-loader', 34 | } 35 | ] 36 | }, 37 | resolve: { 38 | extensions: [ '.tsx', '.ts', '.js' ], 39 | }, 40 | plugins: [ 41 | new CleanWebpackPlugin(), 42 | new VueLoaderPlugin() 43 | ], 44 | devServer: { 45 | overlay: true, 46 | historyApiFallback: true 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vtu-next-demo", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "test": "yarn jest", 8 | "dev": "yarn webpack-dev-server", 9 | "build": "yarn webpack --mode production" 10 | }, 11 | "devDependencies": { 12 | "@babel/node": "^7.8.7", 13 | "@babel/preset-env": "^7.9.0", 14 | "@types/highlight.js": "^9.12.3", 15 | "@types/jest": "^25.2.1", 16 | "@types/lodash": "^4.14.150", 17 | "@types/marked": "^0.7.4", 18 | "@types/moment": "^2.13.0", 19 | "@vue/compiler-sfc": "^3.0.0-beta.4", 20 | "@vue/test-utils": "^2.0.0-alpha.6", 21 | "babel-jest": "^25.2.6", 22 | "clean-webpack-plugin": "^3.0.0", 23 | "css-loader": "^3.5.3", 24 | "flush-promises": "^1.0.2", 25 | "identity-obj-proxy": "^3.0.0", 26 | "jest": "^25.2.7", 27 | "raw-loader": "^4.0.1", 28 | "style-loader": "^1.2.1", 29 | "ts-jest": "^25.3.1", 30 | "ts-loader": "^6.2.2", 31 | "typescript": "^3.8.3", 32 | "vue-jest": "^5.0.0-alpha.0", 33 | "vue-loader": "^16.0.0-alpha.3", 34 | "webpack": "^4.42.1", 35 | "webpack-cli": "^3.3.11", 36 | "webpack-dev-server": "^3.10.3" 37 | }, 38 | "dependencies": { 39 | "axios": "^0.19.2", 40 | "highlight.js": "^10.0.2", 41 | "lodash": "^4.17.15", 42 | "marked": "^1.0.0", 43 | "moment": "^2.24.0", 44 | "vue": "^3.0.2", 45 | "vue-router": "^4.0.0-alpha.13" 46 | } 47 | } 48 | --------------------------------------------------------------------------------