diff --git a/package.json b/package.json index be5f5b745..e96ffe908 100644 --- a/package.json +++ b/package.json @@ -29,9 +29,10 @@ "./package.json": "./package.json" }, "scripts": { - "build": "npm run build:server && npm run build:client", + "build": "rm -rf ./.server && npm run build:server && npm run build:client && npm run build:types", "build:client": "NODE_ENV=${NODE_ENV:-production} webpack", "build:server": "babel --delete-dir-on-start --extensions \".js\",\".ts\" --ignore \"**/*.test.ts\" --copy-files --no-copy-ignored --source-maps --out-dir ./.server ./src", + "build:types": "tsc -p tsconfig.build.json", "dev": "concurrently \"npm run client:watch\" \"npm run server:watch:dev\" --kill-others --names \"client,server\" --prefix-colors \"red.dim,blue.dim\"", "dev:debug": "concurrently \"npm run client:watch\" \"npm run server:watch:debug\" --kill-others --names \"client,server\" --prefix-colors \"red.dim,blue.dim\"", "format": "npm run format:check -- --write", diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 000000000..49f084681 --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "module": "NodeNext", + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "es2022", + "baseUrl": "./", + "paths": { + "~/*": ["./*"] + }, + "types": ["@testing-library/jest-dom", "jest"], + "declaration": true, + "emitDeclarationOnly": true, + "isolatedModules": true, + "outDir": ".server", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "exclude": ["coverage", "node_modules", ".public", ".server", "**/*.test.*"] +}