better tooling for builds

This commit is contained in:
Josep M Sobrepere 2021-02-18 02:20:59 +01:00
parent f980cf5b41
commit 5d9a7c220b
12 changed files with 65 additions and 19 deletions

7
.gitignore vendored
View File

@ -3,4 +3,9 @@
node_modules
coverage
.cache
dist
packages/core/dist/**
!packages/core/dist/index.js
packages/utils/dist/**
!packages/utils/dist/index.js
packages/dom/dist/**
!packages/dom/dist/index.js

View File

@ -41,6 +41,7 @@
},
"devDependencies": {
"cross-env": "^7.0.3",
"esbuild": "^0.8.46",
"eslint-plugin-prettier": "^3.3.1",
"husky": "^4.3.7",
"lint-staged": "^10.5.3",

7
packages/core/dist/index.js vendored Normal file
View File

@ -0,0 +1,7 @@
"use strict"
if (process.env.NODE_ENV === "production") {
module.exports = require("./core.cjs.production.min.js")
} else {
module.exports = require("./core.cjs.development.js")
}

View File

@ -1,5 +1,5 @@
{
"version": "0.6.4",
"version": "0.6.5",
"repository": {
"type": "git",
"url": "git+https://github.com/re-rxjs/react-rxjs.git"
@ -14,7 +14,11 @@
],
"scripts": {
"start": "tsdx watch",
"build": "tsdx build",
"build": "yarn build:ts && yarn build:esm && yarn build:cjs:dev && yarn build:cjs:prod",
"build:esm": "esbuild src/index.tsx --bundle --outfile=./dist/core.esm.js --external:react --external:rxjs --format=esm --sourcemap",
"build:cjs:dev": "esbuild src/index.tsx --bundle --outfile=./dist/core.cjs.development.js --external:react --external:rxjs --format=cjs --sourcemap",
"build:cjs:prod": "esbuild src/index.tsx --bundle --outfile=./dist/core.cjs.production.min.js --external:react --external:rxjs --format=cjs --minify --sourcemap",
"build:ts": "tsc -p ./tsconfig.json --outDir ./dist --skipLibCheck --emitDeclarationOnly",
"test": "tsdx test --coverage",
"lint": "prettier --check README.md && tsdx lint src",
"format": "prettier --write README.md \"src/**/*.{js,jsx,ts,tsx,json,md}\"",
@ -40,6 +44,7 @@
"@types/jest": "^26.0.20",
"@types/react": "^16.9.56",
"@types/react-dom": "^16.9.9",
"esbuild": "^0.8.46",
"jest-marbles": "^2.5.1",
"lint-staged": "^10.5.3",
"react": "^17.0.1",

View File

@ -1,5 +1,5 @@
{
"include": ["src", "types", "test"],
"include": ["src"],
"compilerOptions": {
"target": "es5",
"module": "esnext",
@ -27,8 +27,5 @@
"jsx": "react",
"esModuleInterop": true
},
"exclude": [
"**/*.test.ts",
"./src/test-helpers"
]
"exclude": ["**/*.test.*", "**/test-helpers/*.*"]
}

7
packages/dom/dist/index.js vendored Normal file
View File

@ -0,0 +1,7 @@
"use strict"
if (process.env.NODE_ENV === "production") {
module.exports = require("./dom.cjs.production.min.js")
} else {
module.exports = require("./dom.cjs.development.js")
}

View File

@ -1,5 +1,5 @@
{
"version": "0.1.1",
"version": "0.1.2",
"repository": {
"type": "git",
"url": "git+https://github.com/re-rxjs/react-rxjs.git"
@ -14,7 +14,11 @@
],
"scripts": {
"start": "tsdx watch",
"build": "tsdx build",
"build": "yarn build:ts && yarn build:esm && yarn build:cjs:dev && yarn build:cjs:prod",
"build:esm": "esbuild src/index.tsx --bundle --outfile=./dist/dom.esm.js --external:react --external:rxjs --external:react-dom --format=esm --sourcemap",
"build:cjs:dev": "esbuild src/index.tsx --bundle --outfile=./dist/dom.cjs.development.js --external:react --external:rxjs --external:react-dom --format=cjs --sourcemap",
"build:cjs:prod": "esbuild src/index.tsx --bundle --outfile=./dist/dom.cjs.production.min.js --external:react --external:rxjs --external:react-dom --format=cjs --minify --sourcemap",
"build:ts": "tsc -p ./tsconfig.json --outDir ./dist --skipLibCheck --emitDeclarationOnly",
"test": "tsdx test --coverage",
"lint": "prettier --check README.md && tsdx lint src",
"format": "prettier --write README.md \"src/**/*.{js,jsx,ts,tsx,json,md}\"",
@ -36,7 +40,7 @@
"Victor Oliva (https://github.com/voliva)"
],
"devDependencies": {
"@react-rxjs/core": "0.6.4",
"@react-rxjs/core": "0.6.5",
"@testing-library/react": "^11.2.3",
"@testing-library/react-hooks": "^3.4.2",
"@types/jest": "^26.0.20",

View File

@ -1,5 +1,5 @@
{
"include": ["src", "types", "test"],
"include": ["src"],
"compilerOptions": {
"target": "es5",
"module": "esnext",
@ -27,7 +27,5 @@
"jsx": "react",
"esModuleInterop": true
},
"exclude": [
"**/*.test.ts"
]
"exclude": ["**/*.test.ts"]
}

7
packages/utils/dist/index.js vendored Normal file
View File

@ -0,0 +1,7 @@
"use strict"
if (process.env.NODE_ENV === "production") {
module.exports = require("./utils.cjs.production.min.js")
} else {
module.exports = require("./utils.cjs.development.js")
}

View File

@ -1,5 +1,5 @@
{
"version": "0.4.0",
"version": "0.4.1",
"repository": {
"type": "git",
"url": "git+https://github.com/re-rxjs/react-rxjs.git"
@ -14,7 +14,11 @@
],
"scripts": {
"start": "tsdx watch",
"build": "tsdx build",
"build": "yarn build:ts && yarn build:esm && yarn build:cjs:dev && yarn build:cjs:prod",
"build:esm": "esbuild src/index.tsx --bundle --outfile=./dist/utils.esm.js --external:react --external:rxjs --external:@react-rxjs/core --format=esm --sourcemap",
"build:cjs:dev": "esbuild src/index.tsx --bundle --outfile=./dist/utils.cjs.development.js --external:react --external:rxjs --external:@react-rxjs/core --format=cjs --sourcemap",
"build:cjs:prod": "esbuild src/index.tsx --bundle --outfile=./dist/utils.cjs.production.min.js --external:react --external:rxjs --external:@react-rxjs/core --format=cjs --minify --sourcemap",
"build:ts": "tsc -p ./tsconfig.json --outDir ./dist --skipLibCheck --emitDeclarationOnly",
"test": "tsdx test --coverage",
"lint": "prettier --check README.md && tsdx lint src",
"format": "prettier --write README.md \"src/**/*.{js,jsx,ts,tsx,json,md}\"",
@ -36,7 +40,7 @@
"Victor Oliva (https://github.com/voliva)"
],
"devDependencies": {
"@react-rxjs/core": "0.6.4",
"@react-rxjs/core": "0.6.5",
"@testing-library/react": "^11.2.3",
"@testing-library/react-hooks": "^3.4.2",
"@types/jest": "^26.0.20",

View File

@ -26,5 +26,6 @@
},
"jsx": "react",
"esModuleInterop": true
}
},
"exclude": ["**/*.test.*"]
}

View File

@ -1325,6 +1325,11 @@
"@nodelib/fs.scandir" "2.1.4"
fastq "^1.6.0"
"@react-rxjs/core@0.6.4":
version "0.6.4"
resolved "https://registry.yarnpkg.com/@react-rxjs/core/-/core-0.6.4.tgz#26d8007692d9e4c959cc83ae2df4378c07ab71eb"
integrity sha512-CZdtxzjbiGA6D0+DU5aw/x6gk8dm8uCPCeXfvqVfzKpjjphZbT2GjsZG7tYbCB4zENy/VuzOwZYkO3SaLiadnA==
"@rollup/plugin-babel@^5.1.0":
version "5.2.1"
resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.2.1.tgz#20fc8f8864dc0eaa1c5578408459606808f72924"
@ -2817,6 +2822,11 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
esbuild@^0.8.46:
version "0.8.46"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.46.tgz#8fc7230ce3019b12e2553399f0c03875a729c26b"
integrity sha512-xck9sXNCNmjDHCCfxTCyhKTiFuEBweh+IDAhMLOJI990v1Fzii6MyIkT1LbkvjgoVgPX2SK1kpi5eZVGNrl8yg==
escalade@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e"