From ce65e84c66489732fce573e1f29fb5570d136fe4 Mon Sep 17 00:00:00 2001 From: Joslyn Manzi Karenzi Date: Thu, 6 Jun 2024 13:22:12 +0200 Subject: [PATCH] chore(docker-setup): dockerize the project (#13) - update vite config - set up docker [Finishes #10] --- package-lock.json | 46 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + src/main.tsx | 2 +- tsconfig.json | 7 +++++++ vite.config.ts | 13 ++++++++++++- 5 files changed, 67 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 84150d40..24a3a55f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ "tailwindcss": "^3.4.3", "typescript": "^5.2.2", "vite": "^5.2.0", + "vite-tsconfig-paths": "^4.3.2", "vitest": "^1.6.0" } }, @@ -4398,6 +4399,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -7305,6 +7312,26 @@ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true }, + "node_modules/tsconfck": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.0.tgz", + "integrity": "sha512-CMjc5zMnyAjcS9sPLytrbFmj89st2g+JYtY/c02ug4Q+CZaAtCgbyviI0n1YvjZE/pzoc6FbNsINS13DOL1B9w==", + "dev": true, + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -7632,6 +7659,25 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/vite-tsconfig-paths": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.2.tgz", + "integrity": "sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, "node_modules/vitest": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", diff --git a/package.json b/package.json index 9f5bfb2a..45b290c9 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "tailwindcss": "^3.4.3", "typescript": "^5.2.2", "vite": "^5.2.0", + "vite-tsconfig-paths": "^4.3.2", "vitest": "^1.6.0" } } diff --git a/src/main.tsx b/src/main.tsx index 93db3799..6089357f 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,6 +1,6 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; -import App from './App.tsx'; +import App from 'src/App.tsx'; import './index.css'; ReactDOM.createRoot(document.getElementById('root')!).render( diff --git a/tsconfig.json b/tsconfig.json index 461ae7cb..538a6b3d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,13 @@ "module": "ESNext", "skipLibCheck": true, + /*Configure TypeScript Paths*/ + + "baseUrl": ".", + "paths": { + "@src/*": ["src/*"], + }, + /* Bundler mode */ "moduleResolution": "bundler", "allowImportingTsExtensions": true, diff --git a/vite.config.ts b/vite.config.ts index 5fc00d6c..ee443e6f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -3,8 +3,9 @@ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; +import path from 'path'; -// https://vitejs.dev/config/ +// vite.config.ts export default defineConfig({ plugins: [react()], server: { @@ -17,4 +18,14 @@ export default defineConfig({ environment: 'jsdom', setupFiles: ['./src/__test__/setupTests.ts'], }, + resolve: { + alias: { + '@': path.resolve(__dirname, 'src'), + }, + }, + build: { + rollupOptions: { + external: ['src/App.tsx'], + }, + }, });