From c2731966583d242ddcfbee086fb58384137a5c78 Mon Sep 17 00:00:00 2001 From: Hammad Jutt Date: Fri, 24 Jul 2020 00:55:51 -0600 Subject: [PATCH] Cleanup Monorepo Build and packaging --- README.md | 6 ++++++ package.json | 2 +- packages/app-react/tsconfig.json | 5 +++++ packages/backend/package.json | 4 ++-- packages/backend/tsconfig.json | 11 +++++++++-- packages/design-system/package.json | 17 +++++++++++------ packages/design-system/src/index.ts | 2 +- packages/design-system/src/theme.ts | 13 ++++++------- .../design-system/stories/0-Text.stories.jsx | 3 --- packages/design-system/tsconfig.json | 11 ++++++----- packages/utils/package.json | 2 +- packages/utils/tsconfig.json | 6 ++++-- packages/web/tsconfig.json | 11 +++++++++-- tsconfig.base.json | 4 +++- 14 files changed, 64 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 17059cb7..ad2edf76 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,12 @@ Create your local .env file cp .env.sample .env ``` +Initial TS Compilation For Monorepo Packages + +```shell script +yarn typecheck +``` + ### Run services **Start backend services** diff --git a/package.json b/package.json index eb112861..f679577f 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "clean": "lerna clean", "format": "prettier --ignore-path .gitignore --write \"{*,**/*}.{ts,tsx,js,jsx,json,yml,yaml,md}\"", "lint": "eslint --ignore-path .gitignore \"./packages/**/*.{ts,tsx,js,jsx}\"", - "typecheck": "lerna run --parallel typecheck", + "typecheck": "lerna run typecheck", "precommit": "lerna run --concurrency 1 --stream precommit", "prepush": "yarn typecheck && yarn lint", "web": "yarn --cwd packages/web/" diff --git a/packages/app-react/tsconfig.json b/packages/app-react/tsconfig.json index 10dfa6c4..a3d4b502 100644 --- a/packages/app-react/tsconfig.json +++ b/packages/app-react/tsconfig.json @@ -9,5 +9,10 @@ "noEmit": true, "jsx": "react" }, + "references": [ + { + "path": "../utils/tsconfig.json" + } + ], "include": ["src"] } diff --git a/packages/backend/package.json b/packages/backend/package.json index 9ae8906e..54c87ea1 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -6,9 +6,9 @@ "main": "dist/index.js", "scripts": { "start": "node ./dist/index.js", - "build": "tsc", + "build": "tsc -b", "dev": "ts-node-dev --exit-child --respawn --transpileOnly src/index.ts", - "typecheck": "tsc --noEmit", + "typecheck": "yarn build", "precommit": "yarn lint-staged" }, "author": "", diff --git a/packages/backend/tsconfig.json b/packages/backend/tsconfig.json index 47b96e8b..9276700f 100644 --- a/packages/backend/tsconfig.json +++ b/packages/backend/tsconfig.json @@ -1,8 +1,15 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist" + "rootDir": "src", + "outDir": "dist", + "tsBuildInfoFile": "dist/.tsbuildinfo", + "incremental": true }, + "references": [ + { + "path": "../utils" + } + ], "include": ["./src"] } diff --git a/packages/design-system/package.json b/packages/design-system/package.json index 1c39ec80..c162672a 100644 --- a/packages/design-system/package.json +++ b/packages/design-system/package.json @@ -1,8 +1,17 @@ { - "name": "@metafam/design-system", + "name": "@metafam/ds", "version": "0.1.0", - "main": "src/index.js", + "main": "dist/index.js", + "types": "dist/index.d.ts", "license": "MIT", + "scripts": { + "storybook": "start-storybook -p 6006", + "build-storybook": "build-storybook", + "prepare": "yarn build", + "typecheck": "yarn build", + "build": "tsc", + "precommit": "yarn lint-staged" + }, "dependencies": { "@chakra-ui/core": "^0.8.0", "@emotion/core": "^10.0.28", @@ -20,9 +29,5 @@ "babel-loader": "^8.1.0", "fork-ts-checker-webpack-plugin": "^5.0.9", "ts-loader": "^8.0.1" - }, - "scripts": { - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" } } diff --git a/packages/design-system/src/index.ts b/packages/design-system/src/index.ts index 2d1bcd44..9b15ba03 100644 --- a/packages/design-system/src/index.ts +++ b/packages/design-system/src/index.ts @@ -1,3 +1,3 @@ export { ThemeProvider } from '@chakra-ui/core'; -export { metaTheme as theme } from './theme'; +export { theme } from './theme'; export { GlobalStyle } from './GlobalStyle'; diff --git a/packages/design-system/src/theme.ts b/packages/design-system/src/theme.ts index 421095ce..4ed45019 100644 --- a/packages/design-system/src/theme.ts +++ b/packages/design-system/src/theme.ts @@ -1,14 +1,13 @@ -import { theme } from '@chakra-ui/core'; +import { theme as chakraTheme } from '@chakra-ui/core'; -export const metaTheme = { - ...theme, +export const theme: typeof chakraTheme = { + ...chakraTheme, colors: { - ...theme.colors, + ...chakraTheme.colors, }, fonts: { body: '"IBM Plex Sans", sans-serif', - heading: '"IBM Plex Sans", sans-serif', - mono: '"IBM Plex Mono", monospace', - meta: '"Press Start 2P"', + heading: '"IBM Plex Mono", monospace', + mono: '"Press Start 2P"', }, }; diff --git a/packages/design-system/stories/0-Text.stories.jsx b/packages/design-system/stories/0-Text.stories.jsx index 4799cbf9..ec307d3f 100644 --- a/packages/design-system/stories/0-Text.stories.jsx +++ b/packages/design-system/stories/0-Text.stories.jsx @@ -41,8 +41,5 @@ export const Fonts = () => ( In love with MetaGame - Mono Bold - - In love with MetaGame - Meta - ); diff --git a/packages/design-system/tsconfig.json b/packages/design-system/tsconfig.json index 10dfa6c4..5d92e7c1 100644 --- a/packages/design-system/tsconfig.json +++ b/packages/design-system/tsconfig.json @@ -1,13 +1,14 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "target": "es5", - "module": "esnext", "lib": ["dom", "dom.iterable", "esnext"], - "isolatedModules": true, "allowJs": true, - "noEmit": true, - "jsx": "react" + "jsx": "react", + "composite": true, + "rootDir": "src", + "outDir": "dist", + "tsBuildInfoFile": "dist/.tsbuildinfo" }, + "exclude": ["node_modules"], "include": ["src"] } diff --git a/packages/utils/package.json b/packages/utils/package.json index 766b701b..0da59736 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -9,7 +9,7 @@ "start": "yarn dev", "build": "tsc", "dev": "tsc -w", - "typecheck": "tsc --noEmit", + "typecheck": "yarn build", "prepare": "yarn build", "precommit": "yarn lint-staged" }, diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index d7f99001..3dac5d0a 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -1,8 +1,10 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { + "composite": true, "rootDir": "src", - "outDir": "./dist" + "outDir": "dist", + "tsBuildInfoFile": "dist/.tsbuildinfo" }, - "include": ["./src"] + "include": ["src"] } diff --git a/packages/web/tsconfig.json b/packages/web/tsconfig.json index 792ca69f..d9e10efb 100644 --- a/packages/web/tsconfig.json +++ b/packages/web/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "../../tsconfig.json", "compilerOptions": { "target": "esnext", "module": "esnext", @@ -9,6 +9,13 @@ "lib": ["dom", "es2017"], "noEmit": true }, - "exclude": ["node_modules"], + "references": [ + { + "path": "../utils/tsconfig.json" + }, + { + "path": "../design-system/tsconfig.json" + } + ], "include": ["**/*.ts", "**/*.tsx", "next-env.d.ts"] } diff --git a/tsconfig.base.json b/tsconfig.base.json index 61ca1305..94d92e59 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -13,10 +13,12 @@ "esModuleInterop": true, "resolveJsonModule": true, "declaration": true, + "declarationMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, "allowSyntheticDefaultImports": true, "typeRoots": ["packages/@types", "node_modules/@types"] - } + }, + "exclude": ["node_modules", "dist"] }