Skip to content

Instantly share code, notes, and snippets.

@leeliwei930
Last active September 30, 2020 14:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save leeliwei930/a6c7115d1712cccf2804c2cb3f5fcc50 to your computer and use it in GitHub Desktop.
Save leeliwei930/a6c7115d1712cccf2804c2cb3f5fcc50 to your computer and use it in GitHub Desktop.
Vue 3 - My TypeScript Development Environment Setup
.eslintrc.js
*.config.js
*.config.ts
{
"env": {
"browser": true,
"es6": true
},
"extends": [
"plugin:vue/vue3-recommended",
"plugin:@typescript-eslint/recommended",
"airbnb-typescript/base"
],
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parser": "vue-eslint-parser",
"parserOptions": {
"ecmaVersion": 2018,
"parser": "@typescript-eslint/parser",
"sourceType": "module",
"project": "tsconfig.json",
"tsconfigRootDir": "./",
"extraFileExtensions": [ ".vue" ]
},
"plugins": [
"vue",
"@typescript-eslint"
],
"rules": {
},
"settings": {
"import/resolver": {
"alias": {
"map": [
["@classes", "./src/classes/"]
],
"extensions": [".ts", ".js", ".jsx", ".json"]
}
}
}
}
{
"env": {
"browser": true,
"es6": true
},
"extends": [
"plugin:vue/vue3-recommended",
"plugin:@typescript-eslint/recommended",
"airbnb-typescript/base"
],
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parser": "vue-eslint-parser",
"parserOptions": {
"ecmaVersion": 2018,
"parser": "@typescript-eslint/parser",
"sourceType": "module",
"project": "tsconfig.json",
"tsconfigRootDir": "./",
"extraFileExtensions": [ ".vue" ]
},
"plugins": [
"vue",
"@typescript-eslint"
],
"rules": {
},
"settings": {
}
}
<template lang="pug">
img(alt="Vue logo" src="./assets/logo.png")
HelloWorld(msg="Hello Vue 3.0 + Vite")
</template>
<script lang="ts>
import HelloWorld from './components/HelloWorld.vue'
export default {
name: 'App',
components: {
HelloWorld
}
}
</script>
@tailwind base;
@tailwind components;
@tailwind utilities;
import { createApp } from 'vue';
import App from './App.vue';
import './index.css';
createApp(App).mount('#app');
const autoprefixer = require('autoprefixer');
const tailwindcss = require('tailwindcss');
const postcssnested = require('postcss-nested');
module.exports = {
plugins: [
tailwindcss,
postcssnested({ bubble: ['screen', 'variants', 'responsive']}),
autoprefixer,
],
};
interface User {
id: string,
email: string
}
interface Profile extends User {
avatar: string,
firstname: string,
lastname: string
}
export { User, Profile };
declare module '*.vue' {
import { defineComponent } from 'vue';
const component: ReturnType<typeof defineComponent>;
export default component;
}
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"strict": true,
"jsx": "preserve",
"importHelpers": true,
"moduleResolution": "node",
"experimentalDecorators": true,
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"baseUrl": ".",
"types": [
"webpack-env",
"jest"
],
"paths": {
"@/*": [
"src/*"
],
"@classes/*" :[
"src/classes/*"
]
},
"lib": [
"esnext",
"dom",
"dom.iterable",
"scripthost"
]
},
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"tests/**/*.ts",
"tests/**/*.tsx"
],
"exclude": [
"node_modules"
]
}
import type { UserConfig } from 'vite'
import tsResolver from 'vite-tsconfig-paths'
const config: UserConfig = {
resolvers: [tsResolver],
}
export default config
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment