diff --git a/client/shim-vue.d.ts b/client/shim-vue.d.ts new file mode 100644 index 00000000000..94f224549e0 --- /dev/null +++ b/client/shim-vue.d.ts @@ -0,0 +1,5 @@ +//src/shims-vue.d.ts +declare module "*.vue" { + import Vue from "vue"; + export default Vue; +} diff --git a/client/tsconfig.json b/client/tsconfig.json index 3e6b307a295..ebdb72b1984 100644 --- a/client/tsconfig.json +++ b/client/tsconfig.json @@ -13,7 +13,7 @@ /* Language and Environment */ "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ + "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ @@ -31,7 +31,9 @@ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + "types": [ + // "webpack-env" + ], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ // "resolveJsonModule": true, /* Enable importing .json files */ // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ @@ -50,7 +52,7 @@ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ @@ -99,8 +101,9 @@ "skipLibCheck": true /* Skip type checking all .d.ts files. */ }, "include": [ - // Since we allowJs, we need to scope this correctly. - "src/**/*.ts" + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.vue", ], "exclude": [ "node_modules" diff --git a/client/webpack.config.js b/client/webpack.config.js index 09963558b35..19723bd8791 100644 --- a/client/webpack.config.js +++ b/client/webpack.config.js @@ -86,14 +86,6 @@ module.exports = (env = {}, argv = {}) => { }, module: { rules: [ - // { - // test: /\.ts$/, - // // exclude: /node_modules|vue\/src/, - // loader: "ts-loader", - // options: { - // appendTsSuffixTo: [/\.vue$/], - // }, - // }, { test: /\.vue$/, loader: "vue-loader", @@ -105,8 +97,9 @@ module.exports = (env = {}, argv = {}) => { }, { test: /\.tsx?$/, - use: 'ts-loader', exclude: /node_modules/, + loader: "ts-loader", + options: { appendTsSuffixTo: [/\.vue$/] }, }, { test: `${libsBase}/jquery.custom.js`,