From 1c04357c93dd54ff92cf232842cb96930abc5efd Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Sat, 14 May 2022 11:58:29 +0800 Subject: [PATCH] add ts config --- package.json | 2 ++ src/libs/Hello.ts | 12 ++++++++++++ src/main.js | 1 + tsconfig.json | 21 +++++++++++++++++++++ vue.config.js | 8 ++++++++ yarn.lock | 42 +++++++++++++++++++++++++++++++++++++++--- 6 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 src/libs/Hello.ts create mode 100644 tsconfig.json diff --git a/package.json b/package.json index dbf573af..e56f2a12 100644 --- a/package.json +++ b/package.json @@ -104,6 +104,8 @@ "eslint-plugin-vue": "6.2.2", "sass": "1.32.*", "sass-loader": "^10.1.0", + "ts-loader": "8.2.0", + "typescript": "^4.6.4", "vue-template-compiler": "2.x", "webpack-bundle-analyzer": "^4.5.0" } diff --git a/src/libs/Hello.ts b/src/libs/Hello.ts new file mode 100644 index 00000000..47e58a9d --- /dev/null +++ b/src/libs/Hello.ts @@ -0,0 +1,12 @@ +interface hello { + name: string; +} + +class HelloType implements hello { + name: string + + constructor(name: string) { + this.name = name + } +} +console.log('Hello from typescript', new HelloType('typescript')) diff --git a/src/main.js b/src/main.js index 2b235983..413897de 100644 --- a/src/main.js +++ b/src/main.js @@ -19,6 +19,7 @@ import './global-components' import '@/libs/portal-vue' import '@/libs/toastification' import '@/libs/clipboard' +import '@/libs/Hello.ts' Vue.directive('observe-visibility', ObserveVisibility) // Vue.use(VueGtag, { config: { id: 'UA-238887-1' } }, router) diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..44dac481 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "lib": [ + "dom", + "es5", + "es2015" + ], + "target": "es5", + "module": "es2015", + "moduleResolution": "node", + "sourceMap": true, + "allowSyntheticDefaultImports": true + }, + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.vue", + "src/**/*.d.ts" + ], + "exclude": ["node_modules"] +} \ No newline at end of file diff --git a/vue.config.js b/vue.config.js index d5d502d7..efa1320e 100644 --- a/vue.config.js +++ b/vue.config.js @@ -58,6 +58,14 @@ module.exports = { } return options }) + config.module + .rule('ts') + .test(/\.tsx?$/) + .use('ts-loader') + .loader('ts-loader') + .options({ + appendTsSuffixTo: [/\.vue$/], + }) }, transpileDependencies: ['vue-echarts', 'resize-detector'], devServer: { diff --git a/yarn.lock b/yarn.lock index 87961d28..cccb905b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -998,7 +998,7 @@ "@cosmjs/stream" "0.28.4" xstream "^11.14.0" -"@cosmjs/launchpad@^0.28.4": +"@cosmjs/launchpad@^0.27.1": version "0.27.1" resolved "https://registry.yarnpkg.com/@cosmjs/launchpad/-/launchpad-0.27.1.tgz#b6f1995748be96560f5f01e84d3ff907477dda77" integrity sha512-DcFwGD/z5PK8CzO2sojDxa+Be9EIEtRZb2YawgVnw2Ht/p5FlNv+OVo8qlishpBdalXEN7FvQ1dVeDFEe9TuJw== @@ -2718,7 +2718,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1, braces@~3.0.2: +braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -4200,7 +4200,7 @@ enhanced-resolve@^0.9.1: memory-fs "^0.2.0" tapable "^0.1.8" -enhanced-resolve@^4.5.0: +enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz" integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== @@ -6688,6 +6688,14 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.0: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + micromatch@^4.0.2: version "4.0.4" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" @@ -7527,6 +7535,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + pify@^2.0.0: version "2.3.0" resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" @@ -8697,6 +8710,13 @@ semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +semver@^7.3.4: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + send@0.17.1: version "0.17.1" resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" @@ -9594,6 +9614,17 @@ tryer@^1.0.1: resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== +ts-loader@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.2.0.tgz#6a3aeaa378aecda543e2ed2c332d3123841d52e0" + integrity sha512-ebXBFrNyMSmbWgjnb3WBloUBK+VSx1xckaXsMXxlZRDqce/OPdYBVN5efB0W3V0defq0Gcy4YuzvPGqRgjj85A== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^4.0.0" + loader-utils "^2.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz" @@ -9670,6 +9701,11 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript@^4.6.4: + version "4.6.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" + integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== + uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz"