├── .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 |
2 | Vue app
3 |
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 |
--------------------------------------------------------------------------------