Refactor project for typescript support
Update and move tsconfig.json from client/ to the root folder.
Update docker-compose.yml and .dockerignore.
Update client/webpack.config.js for better typescript support.
Change-Id: I3b0cc88f7c828dc5bfa5ac129352bf3d40189af3
diff --git a/client/webpack.config.js b/client/webpack.config.js
index 7da8fb5..f5aeab5 100644
--- a/client/webpack.config.js
+++ b/client/webpack.config.js
@@ -1,25 +1,33 @@
'use strict'
-import { fileURLToPath } from 'url';
-import { dirname } from 'path';
+import {dirname, resolve} from 'path'
+import dotenv from 'dotenv'
+import HtmlWebpackPlugin from 'html-webpack-plugin'
+import CopyWebpackPlugin from 'copy-webpack-plugin'
+import webpack from 'webpack'
+import {fileURLToPath} from 'url';
+
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
-import dotenv from 'dotenv'
dotenv.config({ path: resolve(__dirname, '..', '.env') })
-import { resolve } from 'path'
-import HtmlWebpackPlugin from 'html-webpack-plugin'
-import CopyWebpackPlugin from 'copy-webpack-plugin'
const mode = process.env.NODE_ENV || 'development'
let entry = [resolve(__dirname, 'src', 'index.js')]
let plugins = [
- new HtmlWebpackPlugin({ template: '!!raw-loader!' + resolve(__dirname, 'src', 'index.ejs'), filename: 'index.ejs' }),
+ new HtmlWebpackPlugin({
+ template: '!!raw-loader!' + resolve(__dirname, 'src', 'index.ejs'),
+ filename: 'index.ejs'
+ }),
new CopyWebpackPlugin({
- patterns: [{ from: resolve(__dirname, 'public'), to: resolve(__dirname, 'dist') }]
+ patterns: [{
+ from: resolve(__dirname, 'public'),
+ to: resolve(__dirname, 'dist')
+ }]
})
]
+
let devtool = undefined
let babelLoaderPlugins = ["@babel/plugin-transform-runtime"]
@@ -45,10 +53,10 @@
module: {
rules: [
{
- // test: /\.jsx?/,
- test: /\.(js|jsx|ts|tsx)?$/,
+ test: /\.[tj]sx?$/,
resolve: {
fullySpecified: false,
+ extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'],
},
exclude: /node_modules/,
use: {
@@ -69,6 +77,9 @@
runtime: "automatic",
},
],
+ [
+ "@babel/preset-typescript"
+ ],
],
},
},
@@ -94,4 +105,4 @@
extensions: [".ts", ".tsx", ".js", ".jsx"],
},
plugins,
-};
\ No newline at end of file
+};