Configure TypeScript project references
Improvements:
- The common/ project is automatically built by dependent projects
- Building common/ in in the "prepare" script is thus no longer necessary
- Vite and server hot-reloading now work if files in common/ change
- Recompiling common after every change is done automatically
- Using "go to definition" now jumps to the .ts file rather than the .d.ts
Changes:
- Use TypeScript project references to refer to common/ from client/ and server/
- Set "composite" and "declarationMap" options in common/tsconfig.json
- See https://www.typescriptlang.org/docs/handbook/project-references.html
- Use tsc --build in order to build references automatically
- Replace nodemon and ts-node with ts-watch in server in order to use the new tsc --build mode
- See https://github.com/TypeStrong/ts-node/issues/897#issuecomment-647035509
- Remove now unneeded SIGUSR2 signal handler which was for nodemon
- Use tsc-watch before Vite in client in order for hot-reloading to work if common/ changes
- Update TypeScript version
- Add vite.config.node.json to be consistent with expected Vite project defaults
GitLab: #151
Change-Id: Id2f84fe45e44c4d8b4e6d3b324e1aee322c52df6
diff --git a/common/package.json b/common/package.json
index 5838a84..d4a06db 100644
--- a/common/package.json
+++ b/common/package.json
@@ -5,18 +5,15 @@
"main": "dist/index.js",
"module": "dist/index.js",
"types": "dist/index.d.ts",
- "files": [
- "dist/index.js"
- ],
"scripts": {
"build": "tsc --build",
- "clean": "rm -rf dist tsconfig.tsbuildinfo",
+ "clean": "rm -rf dist *.tsbuildinfo",
"lint": "eslint src",
"lint:fix": "npm run lint -- --fix",
"format": "prettier --write src",
"format:check": "prettier --check src"
},
- "dependencies": {
- "typescript": "^4.8.4"
+ "devDependencies": {
+ "typescript": "~4.8.4"
}
}