From 6fd7daec6587d880692e8338390de05cfda13909 Mon Sep 17 00:00:00 2001 From: lemon-clown Date: Tue, 31 Mar 2020 22:39:51 +0800 Subject: [PATCH 1/9] :construction: [template-ts-package] feat: update boilerplate --- packages/template-ts-package/boilerplate/package.json.hbs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/template-ts-package/boilerplate/package.json.hbs b/packages/template-ts-package/boilerplate/package.json.hbs index ad73d8b..bb111a1 100644 --- a/packages/template-ts-package/boilerplate/package.json.hbs +++ b/packages/template-ts-package/boilerplate/package.json.hbs @@ -30,7 +30,9 @@ "CHANGELOG.md", "LICENSE", "README.md", - "package.json" + "package.json", + "!lib/**/*.js.map", + "!lib/**/*.d.ts.map ], "scripts": { "start": "rollup -w -c rollup.config.js", From 1239bba97c73c669178ce4761c250a4a54d54e3e Mon Sep 17 00:00:00 2001 From: lemon-clown Date: Sat, 4 Apr 2020 00:02:10 +0800 Subject: [PATCH 2/9] :wrench: chore: update tsconfigs --- packages/blob-util/rollup.config.js | 2 +- packages/blob-util/tsconfig.json | 12 ++++------ packages/blob-util/tsconfig.src.json | 13 +++++++++++ packages/option-util/rollup.config.js | 2 +- packages/option-util/tsconfig.json | 12 ++++------ packages/option-util/tsconfig.src.json | 13 +++++++++++ packages/rollup-config/package.json | 4 ++-- packages/rollup-config/tsconfig.json | 11 ++++----- packages/rollup-config/tsconfig.src.json | 12 ++++++++++ .../rollup.config.js | 2 +- .../tsconfig.json | 12 ++++------ .../tsconfig.src.json | 13 +++++++++++ .../rollup.config.js | 2 +- .../webpack-source-map-loader/tsconfig.json | 13 ++++------- .../tsconfig.src.json | 14 +++++++++++ tsconfig.json | 22 +++++++++++++++++- tsconfig.settings.json | 23 +------------------ 17 files changed, 118 insertions(+), 64 deletions(-) create mode 100644 packages/blob-util/tsconfig.src.json create mode 100644 packages/option-util/tsconfig.src.json create mode 100644 packages/rollup-config/tsconfig.src.json create mode 100644 packages/tool-find-inconsistent-packages/tsconfig.src.json create mode 100644 packages/webpack-source-map-loader/tsconfig.src.json diff --git a/packages/blob-util/rollup.config.js b/packages/blob-util/rollup.config.js index f67b468..73b2752 100644 --- a/packages/blob-util/rollup.config.js +++ b/packages/blob-util/rollup.config.js @@ -6,7 +6,7 @@ import manifest from './package.json' const resolvePath = p => path.resolve(__dirname, p) const paths = { eslintrc: resolvePath('.eslintrc.js'), - tsconfig: resolvePath('tsconfig.json'), + tsconfig: resolvePath('tsconfig.src.json'), } diff --git a/packages/blob-util/tsconfig.json b/packages/blob-util/tsconfig.json index 9af4180..d3c8c68 100644 --- a/packages/blob-util/tsconfig.json +++ b/packages/blob-util/tsconfig.json @@ -1,13 +1,11 @@ { - "extends": "../../tsconfig.settings", + "extends": "../../tsconfig", "compilerOptions": { - "rootDir": "src", - "outDir": "lib", - "declarationDir": "lib/types", - "target": "es2015", - "module": "es2015" + "module": "commonjs" }, "include": [ - "src" + "src", + "script", + "test" ] } diff --git a/packages/blob-util/tsconfig.src.json b/packages/blob-util/tsconfig.src.json new file mode 100644 index 0000000..9af4180 --- /dev/null +++ b/packages/blob-util/tsconfig.src.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.settings", + "compilerOptions": { + "rootDir": "src", + "outDir": "lib", + "declarationDir": "lib/types", + "target": "es2015", + "module": "es2015" + }, + "include": [ + "src" + ] +} diff --git a/packages/option-util/rollup.config.js b/packages/option-util/rollup.config.js index f67b468..73b2752 100644 --- a/packages/option-util/rollup.config.js +++ b/packages/option-util/rollup.config.js @@ -6,7 +6,7 @@ import manifest from './package.json' const resolvePath = p => path.resolve(__dirname, p) const paths = { eslintrc: resolvePath('.eslintrc.js'), - tsconfig: resolvePath('tsconfig.json'), + tsconfig: resolvePath('tsconfig.src.json'), } diff --git a/packages/option-util/tsconfig.json b/packages/option-util/tsconfig.json index 9af4180..d3c8c68 100644 --- a/packages/option-util/tsconfig.json +++ b/packages/option-util/tsconfig.json @@ -1,13 +1,11 @@ { - "extends": "../../tsconfig.settings", + "extends": "../../tsconfig", "compilerOptions": { - "rootDir": "src", - "outDir": "lib", - "declarationDir": "lib/types", - "target": "es2015", - "module": "es2015" + "module": "commonjs" }, "include": [ - "src" + "src", + "script", + "test" ] } diff --git a/packages/option-util/tsconfig.src.json b/packages/option-util/tsconfig.src.json new file mode 100644 index 0000000..9af4180 --- /dev/null +++ b/packages/option-util/tsconfig.src.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.settings", + "compilerOptions": { + "rootDir": "src", + "outDir": "lib", + "declarationDir": "lib/types", + "target": "es2015", + "module": "es2015" + }, + "include": [ + "src" + ] +} diff --git a/packages/rollup-config/package.json b/packages/rollup-config/package.json index 238efb6..ff8e3a7 100644 --- a/packages/rollup-config/package.json +++ b/packages/rollup-config/package.json @@ -33,8 +33,8 @@ ], "scripts": { "prebuild": "yarn lint:fix && rimraf *.tsbuildinfo lib/", - "build": "tsc -b tsconfig.json", - "postbuild": "rimraf lib/package.json lib/test lib/**/*.tsbuildinfo && mv lib/src/* lib && rimraf lib/src/", + "build": "tsc -b tsconfig.src.json", + "postbuild": "rimraf lib/**/*.tsbuildinfo", "lint:fix": "eslint 'src/**/*.ts' --fix", "prepublishOnly": "yarn build" }, diff --git a/packages/rollup-config/tsconfig.json b/packages/rollup-config/tsconfig.json index a64b7e0..d3c8c68 100644 --- a/packages/rollup-config/tsconfig.json +++ b/packages/rollup-config/tsconfig.json @@ -1,12 +1,11 @@ { - "extends": "../../tsconfig.settings", + "extends": "../../tsconfig", "compilerOptions": { - "outDir": "lib", - "rootDir": ".", - "target": "es5", - "module": "CommonJS", + "module": "commonjs" }, "include": [ - "src" + "src", + "script", + "test" ] } diff --git a/packages/rollup-config/tsconfig.src.json b/packages/rollup-config/tsconfig.src.json new file mode 100644 index 0000000..7f15254 --- /dev/null +++ b/packages/rollup-config/tsconfig.src.json @@ -0,0 +1,12 @@ +{ + "extends": "../../tsconfig.settings", + "compilerOptions": { + "rootDir": "src", + "outDir": "lib", + "target": "es2015", + "module": "commonjs" + }, + "include": [ + "src" + ] +} diff --git a/packages/tool-find-inconsistent-packages/rollup.config.js b/packages/tool-find-inconsistent-packages/rollup.config.js index a3a03ef..e885f1f 100644 --- a/packages/tool-find-inconsistent-packages/rollup.config.js +++ b/packages/tool-find-inconsistent-packages/rollup.config.js @@ -6,7 +6,7 @@ import manifest from './package.json' const resolvePath = p => path.resolve(__dirname, p) const paths = { eslintrc: resolvePath('.eslintrc.js'), - tsconfig: resolvePath('tsconfig.json'), + tsconfig: resolvePath('tsconfig.src.json'), } diff --git a/packages/tool-find-inconsistent-packages/tsconfig.json b/packages/tool-find-inconsistent-packages/tsconfig.json index 9af4180..d3c8c68 100644 --- a/packages/tool-find-inconsistent-packages/tsconfig.json +++ b/packages/tool-find-inconsistent-packages/tsconfig.json @@ -1,13 +1,11 @@ { - "extends": "../../tsconfig.settings", + "extends": "../../tsconfig", "compilerOptions": { - "rootDir": "src", - "outDir": "lib", - "declarationDir": "lib/types", - "target": "es2015", - "module": "es2015" + "module": "commonjs" }, "include": [ - "src" + "src", + "script", + "test" ] } diff --git a/packages/tool-find-inconsistent-packages/tsconfig.src.json b/packages/tool-find-inconsistent-packages/tsconfig.src.json new file mode 100644 index 0000000..9af4180 --- /dev/null +++ b/packages/tool-find-inconsistent-packages/tsconfig.src.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.settings", + "compilerOptions": { + "rootDir": "src", + "outDir": "lib", + "declarationDir": "lib/types", + "target": "es2015", + "module": "es2015" + }, + "include": [ + "src" + ] +} diff --git a/packages/webpack-source-map-loader/rollup.config.js b/packages/webpack-source-map-loader/rollup.config.js index f67b468..73b2752 100644 --- a/packages/webpack-source-map-loader/rollup.config.js +++ b/packages/webpack-source-map-loader/rollup.config.js @@ -6,7 +6,7 @@ import manifest from './package.json' const resolvePath = p => path.resolve(__dirname, p) const paths = { eslintrc: resolvePath('.eslintrc.js'), - tsconfig: resolvePath('tsconfig.json'), + tsconfig: resolvePath('tsconfig.src.json'), } diff --git a/packages/webpack-source-map-loader/tsconfig.json b/packages/webpack-source-map-loader/tsconfig.json index 15df2ed..d3c8c68 100644 --- a/packages/webpack-source-map-loader/tsconfig.json +++ b/packages/webpack-source-map-loader/tsconfig.json @@ -1,14 +1,11 @@ { - "extends": "../../tsconfig.settings", + "extends": "../../tsconfig", "compilerOptions": { - "rootDir": "src", - "outDir": "lib", - "declarationDir": "lib/types", - "target": "es2015", - "module": "es2015", - "noImplicitThis": false + "module": "commonjs" }, "include": [ - "src" + "src", + "script", + "test" ] } diff --git a/packages/webpack-source-map-loader/tsconfig.src.json b/packages/webpack-source-map-loader/tsconfig.src.json new file mode 100644 index 0000000..15df2ed --- /dev/null +++ b/packages/webpack-source-map-loader/tsconfig.src.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.settings", + "compilerOptions": { + "rootDir": "src", + "outDir": "lib", + "declarationDir": "lib/types", + "target": "es2015", + "module": "es2015", + "noImplicitThis": false + }, + "include": [ + "src" + ] +} diff --git a/tsconfig.json b/tsconfig.json index 7166e6c..4d5534d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,3 +1,23 @@ { - "extends": "./tsconfig.settings.json" + "extends": "./tsconfig.settings.json", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@barusu/blob-util": [ + "./packages/blob-util/src" + ], + "@barusu/option-util": [ + "./packages/option-util/src" + ], + "@barusu/rollup-config": [ + "./packages/rollup-config/src" + ], + "@barusu/tool-find-inconsistent-packages": [ + "./packages/tool-find-inconsistent-packages/src" + ], + "@barusu/webpack-source-map-loader": [ + "./packages/webpack-source-map-loader/src" + ], + } + } } diff --git a/tsconfig.settings.json b/tsconfig.settings.json index e9ac007..fbd36a4 100644 --- a/tsconfig.settings.json +++ b/tsconfig.settings.json @@ -26,27 +26,6 @@ "strictFunctionTypes": true, "strictNullChecks": true, "strictPropertyInitialization": true, - "suppressImplicitAnyIndexErrors": true, - "baseUrl": ".", - "paths": { - "@barusu/blob-util": [ - "./packages/blob-util" - ], - "@barusu/option-util": [ - "./packages/option-util" - ], - "@barusu/rollup-config": [ - "./packages/rollup-config" - ], - "@barusu/template-ts-package": [ - "./packages/template-ts-package" - ], - "@barusu/tool-find-inconsistent-packages": [ - "./packages/tool-find-inconsistent-packages" - ], - "@barusu/webpack-source-map-loader": [ - "./packages/webpack-source-map-loader" - ], - } + "suppressImplicitAnyIndexErrors": true } } From fc7257bea34a18cfc89919e933392f37f9cdeac6 Mon Sep 17 00:00:00 2001 From: lemon-clown Date: Sat, 4 Apr 2020 00:34:59 +0800 Subject: [PATCH 3/9] :construction: [template-ts-package] feat: update --- .vscode/settings.json | 1 + .../boilerplate/rollup.config.js.hbs | 4 +-- .../boilerplate/src/index.ts.hbs | 1 + .../boilerplate/tsconfig.json.hbs | 12 ++++----- ...ll.json.hbs => tsconfig.settings.json.hbs} | 12 ++------- .../boilerplate/tsconfig.src.json.hbs | 13 ++++++++++ packages/template-ts-package/index.js | 25 ++++++++++++++++--- 7 files changed, 45 insertions(+), 23 deletions(-) rename packages/template-ts-package/boilerplate/{tsconfig.full.json.hbs => tsconfig.settings.json.hbs} (79%) create mode 100644 packages/template-ts-package/boilerplate/tsconfig.src.json.hbs diff --git a/.vscode/settings.json b/.vscode/settings.json index 55a5a85..b1408ff 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,6 +12,7 @@ "plusplus", "postbuild", "prebuild", + "rimraf", "rollup", "sourcemap", "styl", diff --git a/packages/template-ts-package/boilerplate/rollup.config.js.hbs b/packages/template-ts-package/boilerplate/rollup.config.js.hbs index f67b468..b09ab1b 100644 --- a/packages/template-ts-package/boilerplate/rollup.config.js.hbs +++ b/packages/template-ts-package/boilerplate/rollup.config.js.hbs @@ -6,7 +6,7 @@ import manifest from './package.json' const resolvePath = p => path.resolve(__dirname, p) const paths = { eslintrc: resolvePath('.eslintrc.js'), - tsconfig: resolvePath('tsconfig.json'), + tsconfig: resolvePath('tsconfig.src.json'), } @@ -21,7 +21,7 @@ const config = createRollupConfig({ useTsconfigDeclarationDir: true, }, commonjsOptions: { - include: ['../../node_modules/**'], + include: ['{{{nodeModulesPath}}}/**'], namedExports: { }, }, diff --git a/packages/template-ts-package/boilerplate/src/index.ts.hbs b/packages/template-ts-package/boilerplate/src/index.ts.hbs index e69de29..19dfa14 100644 --- a/packages/template-ts-package/boilerplate/src/index.ts.hbs +++ b/packages/template-ts-package/boilerplate/src/index.ts.hbs @@ -0,0 +1 @@ +console.log('Hello, world!') diff --git a/packages/template-ts-package/boilerplate/tsconfig.json.hbs b/packages/template-ts-package/boilerplate/tsconfig.json.hbs index 9af4180..082d9a0 100644 --- a/packages/template-ts-package/boilerplate/tsconfig.json.hbs +++ b/packages/template-ts-package/boilerplate/tsconfig.json.hbs @@ -1,13 +1,11 @@ { - "extends": "../../tsconfig.settings", + "extends": "{{{tsconfigExtends}}}", "compilerOptions": { - "rootDir": "src", - "outDir": "lib", - "declarationDir": "lib/types", - "target": "es2015", - "module": "es2015" + "module": "commonjs" }, "include": [ - "src" + "src", + "script", + "test" ] } diff --git a/packages/template-ts-package/boilerplate/tsconfig.full.json.hbs b/packages/template-ts-package/boilerplate/tsconfig.settings.json.hbs similarity index 79% rename from packages/template-ts-package/boilerplate/tsconfig.full.json.hbs rename to packages/template-ts-package/boilerplate/tsconfig.settings.json.hbs index cd11227..fbd36a4 100644 --- a/packages/template-ts-package/boilerplate/tsconfig.full.json.hbs +++ b/packages/template-ts-package/boilerplate/tsconfig.settings.json.hbs @@ -4,12 +4,10 @@ "alwaysStrict": true, "declaration": true, "declarationMap": true, - "declarationDir": "lib/types", "downlevelIteration": true, "esModuleInterop": true, "experimentalDecorators": true, "forceConsistentCasingInFileNames": true, - "module": "es2015" "moduleResolution": "node", "newLine": "LF", "noEmit": false, @@ -23,17 +21,11 @@ "pretty": false, "removeComments": false, "resolveJsonModule": true, - "rootDir": "src", "sourceMap": true, "strict": true, "strictFunctionTypes": true, "strictNullChecks": true, "strictPropertyInitialization": true, - "suppressImplicitAnyIndexErrors": true, - "target": "es2015", - "outDir": "lib" - }, - "include": [ - "src" - ] + "suppressImplicitAnyIndexErrors": true + } } diff --git a/packages/template-ts-package/boilerplate/tsconfig.src.json.hbs b/packages/template-ts-package/boilerplate/tsconfig.src.json.hbs new file mode 100644 index 0000000..96048f5 --- /dev/null +++ b/packages/template-ts-package/boilerplate/tsconfig.src.json.hbs @@ -0,0 +1,13 @@ +{ + "extends": "{{{tsconfigSrcExtends}}}", + "compilerOptions": { + "rootDir": ".", + "outDir": "lib", + "declarationDir": "lib/types", + "target": "es2015", + "module": "es2015" + }, + "include": [ + "src" + ] +} diff --git a/packages/template-ts-package/index.js b/packages/template-ts-package/index.js index 1bde90b..7b8aa53 100644 --- a/packages/template-ts-package/index.js +++ b/packages/template-ts-package/index.js @@ -5,6 +5,7 @@ const manifest = require('./package.json') module.exports = function (plop) { + const cwd = path.resolve(process.cwd()) plop.setGenerator('ts-package', { description: 'create template typescript project', prompts: [ @@ -20,7 +21,7 @@ module.exports = function (plop) { message: 'author', default: (answers) => { // detect package.json - const packageJsonPath = path.resolve(process.cwd(), 'package.json') + const packageJsonPath = path.resolve(cwd, 'package.json') if (fs.existsSync(packageJsonPath)) { const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf-8') const packageJson = JSON.parse(packageJsonContent) @@ -62,6 +63,14 @@ module.exports = function (plop) { actions: function (answers) { const resolveSourcePath = (p) => path.normalize(path.resolve(__dirname, 'boilerplate', p)) const resolveTargetPath = (p) => path.normalize(path.resolve(answers.packageLocation, p)) + const relativePath = path.relative(answers.packageLocation, cwd) + answers.tsconfigExtends = answers.isLernaProject + ? path.join(relativePath, 'tsconfig') + : './tsconfig.settings' + answers.tsconfigSrcExtends = answers.isLernaProject + ? path.join(relativePath, 'tsconfig.settings') + : './tsconfig.settings' + answers.nodeModulesPath = path.join(relativePath, 'node_modules') return [ { @@ -84,12 +93,20 @@ module.exports = function (plop) { path: resolveTargetPath('rollup.config.js'), templateFile: resolveSourcePath('rollup.config.js.hbs') }, + !answers.isLernaProject && { + type: 'add', + path: resolveTargetPath('tsconfig.settings.json'), + templateFile: resolveSourcePath('tsconfig.settings.json.hbs') + }, { type: 'add', path: resolveTargetPath('tsconfig.json'), - templateFile: answers.isLernaProject - ? resolveSourcePath('tsconfig.json.hbs') - : resolveSourcePath('tsconfig.full.json.hbs') + templateFile: resolveSourcePath('tsconfig.json.hbs') + }, + { + type: 'add', + path: resolveTargetPath('tsconfig.src.json'), + templateFile: resolveSourcePath('tsconfig.src.json.hbs') }, { type: 'add', From daa05e7da176d4a9178fe4df72f243521354d10a Mon Sep 17 00:00:00 2001 From: lemon-clown Date: Sat, 4 Apr 2020 00:35:38 +0800 Subject: [PATCH 4/9] :bug: [template-ts-package] fix: add missed quote in package.json --- packages/template-ts-package/boilerplate/package.json.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/template-ts-package/boilerplate/package.json.hbs b/packages/template-ts-package/boilerplate/package.json.hbs index bb111a1..ecf2427 100644 --- a/packages/template-ts-package/boilerplate/package.json.hbs +++ b/packages/template-ts-package/boilerplate/package.json.hbs @@ -32,7 +32,7 @@ "README.md", "package.json", "!lib/**/*.js.map", - "!lib/**/*.d.ts.map + "!lib/**/*.d.ts.map" ], "scripts": { "start": "rollup -w -c rollup.config.js", From 9199f134970ae42bc97f95f1df80b0008e8a1853 Mon Sep 17 00:00:00 2001 From: lemon-clown Date: Fri, 10 Apr 2020 21:44:51 +0800 Subject: [PATCH 5/9] :wrench: chore: update npm scripts --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 1d317a9..f815688 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "bootstrap": "lerna bootstrap", "build": "lerna exec --concurrency 1 -- 'echo && pwd && yarn build'", "lint:fix": "lerna exec --concurrency 1 -- 'echo && pwd && yarn lint:fix'", - "clean": "lerna clean --yes", + "clean": "lerna clean --yes && yarn install", + "rebuild": "lerna exec -- 'rimraf lib/' && yarn build", "find-inconsistent": "node ./node_modules/@barusu/tool-find-inconsistent-packages/lib/cjs/cli.js" }, "workspaces": [ From 7f065fc572489d93c0f930c91fc4acfbe0d5025a Mon Sep 17 00:00:00 2001 From: lemon-clown Date: Fri, 10 Apr 2020 21:53:26 +0800 Subject: [PATCH 6/9] :wrench: chore: add ts-node,tsconfig-paths in root package --- package.json | 2 ++ yarn.lock | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/package.json b/package.json index f815688..b391414 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,8 @@ "devDependencies": { "lerna": "^3.20.2", "rimraf": "^3.0.2", + "ts-node": "^8.8.2", + "tsconfig-paths": "^3.9.0", "typescript": "^3.8.2" } } diff --git a/yarn.lock b/yarn.lock index 978ce1c..9faa6b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1014,6 +1014,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + "@types/loader-utils@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@types/loader-utils/-/loader-utils-1.1.3.tgz#82b9163f2ead596c68a8c03e450fbd6e089df401" @@ -1281,6 +1286,11 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -2196,6 +2206,11 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + dir-glob@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" @@ -3774,6 +3789,13 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + json5@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" @@ -4070,6 +4092,11 @@ make-dir@^3.0.2: dependencies: semver "^6.0.0" +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + make-fetch-happen@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" @@ -5740,6 +5767,14 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" +source-map-support@^0.5.6: + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -6179,6 +6214,27 @@ trim-off-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= +ts-node@^8.8.2: + version "8.8.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.8.2.tgz#0b39e690bee39ea5111513a9d2bcdc0bc121755f" + integrity sha512-duVj6BpSpUpD/oM4MfhO98ozgkp3Gt9qIp3jGxwU2DFvl/3IRaEAvbLa8G60uS7C77457e/m5TMowjedeRxI1Q== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.6" + yn "3.1.1" + +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + tslib@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" @@ -6571,3 +6627,8 @@ yargs@^14.2.2: which-module "^2.0.0" y18n "^4.0.0" yargs-parser "^15.0.0" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== From 55500e34a78029a2ee4908c9705a3762302bf872 Mon Sep 17 00:00:00 2001 From: lemon-clown Date: Sat, 11 Apr 2020 21:19:09 +0800 Subject: [PATCH 7/9] :construction: [rollup-config] feat: support sourceMap option --- packages/rollup-config/src/config.ts | 23 ++++++++++++++-- packages/rollup-config/src/util.ts | 41 ++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 packages/rollup-config/src/util.ts diff --git a/packages/rollup-config/src/config.ts b/packages/rollup-config/src/config.ts index 4c7749b..0f4cfed 100644 --- a/packages/rollup-config/src/config.ts +++ b/packages/rollup-config/src/config.ts @@ -12,9 +12,14 @@ import { PeerDepsExternalOptions, EslintOptions, } from './types/options' +import { convertToBoolean, coverBoolean } from './util' export interface ProdConfigParams extends rollup.InputOptions { + /** + * 是否生成 sourceMap (包括 declarationMap) + */ + useSourceMap: boolean manifest: { /** * 源文件入口 @@ -65,8 +70,15 @@ export interface ProdConfigParams extends rollup.InputOptions { export const createRollupConfig = (props: ProdConfigParams): rollup.RollupOptions[] => { + const DEFAULT_USE_SOURCE_MAP = coverBoolean(true, convertToBoolean(process.env.ROLLUP_USE_SOURCE_MAP)) + // process task - const { manifest, pluginOptions = {}, ...resetInputOptions } = props + const { + useSourceMap = DEFAULT_USE_SOURCE_MAP, + manifest, + pluginOptions = {}, + ...resetInputOptions + } = props const { eslintOptions = {}, nodeResolveOptions = {}, @@ -81,13 +93,13 @@ export const createRollupConfig = (props: ProdConfigParams): rollup.RollupOption file: manifest.main, format: 'cjs', exports: 'named', - sourcemap: true, + sourcemap: useSourceMap, }, manifest.module && { file: manifest.module, format: 'es', exports: 'named', - sourcemap: true, + sourcemap: useSourceMap, } ].filter(Boolean) as rollup.OutputOptions[], external: [ @@ -115,6 +127,11 @@ export const createRollupConfig = (props: ProdConfigParams): rollup.RollupOption typescript: require('typescript'), rollupCommonJSResolveHack: true, include: ['src/**/*{.ts,.tsx}'], + tsconfigOverride: { + compilerOptions: { + declarationMap: useSourceMap, + } + }, ...typescriptOptions, }), commonjs({ diff --git a/packages/rollup-config/src/util.ts b/packages/rollup-config/src/util.ts new file mode 100644 index 0000000..6b8f6e5 --- /dev/null +++ b/packages/rollup-config/src/util.ts @@ -0,0 +1,41 @@ +/** + * 转换成布尔值 + * - 若 @value 为 null/undefined,返回 undefined + * - 若 @value 为 string,则只有 true/false 才是有效值,其它值视为 undefined + * - 否则,返回 Boolean(@value) + * @param value + */ +export function convertToBoolean(value?: string | boolean | any): boolean | undefined { + if (value == null) return undefined + if (typeof value === 'string') { + switch (value.toLowerCase()) { + case 'false': return false + case 'true': return true + } + return undefined + } + return Boolean(value) +} + + +/** + * 当 value 为 null/undefined 时,返回 @defaultValue + * 否则返回 @value + * @param defaultValue + * @param value + */ +export function cover(defaultValue: T, value: T | null | undefined): T { + if (value == null) return defaultValue + return value +} + + +/** + * 先将 @value 转成布尔值,然后调用 cover 函数 + * @param defaultValue + * @param value + */ +export function coverBoolean(defaultValue: boolean, value?: any): boolean { + const v = convertToBoolean(value) + return cover(defaultValue, v) +} From be000110244d9304168b4448cd5187c287782778 Mon Sep 17 00:00:00 2001 From: lemon-clown Date: Sat, 11 Apr 2020 21:19:28 +0800 Subject: [PATCH 8/9] :wrench: chore: add cross-env --- package.json | 1 + yarn.lock | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/package.json b/package.json index b391414..e20299a 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "packages/*" ], "devDependencies": { + "cross-env": "^7.0.2", "lerna": "^3.20.2", "rimraf": "^3.0.2", "ts-node": "^8.8.2", diff --git a/yarn.lock b/yarn.lock index 9faa6b9..da5e789 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2020,6 +2020,13 @@ cosmiconfig@^5.1.0: js-yaml "^3.13.1" parse-json "^4.0.0" +cross-env@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9" + integrity sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw== + dependencies: + cross-spawn "^7.0.1" + cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -2031,6 +2038,15 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.1: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" + integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -4973,6 +4989,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -5657,11 +5678,23 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -6495,6 +6528,13 @@ which@^1.2.14, which@^1.2.9, which@^1.3.1: dependencies: isexe "^2.0.0" +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" From d6344eb522f690f190d8e4c09bc61630fae62189 Mon Sep 17 00:00:00 2001 From: lemon-clown Date: Sat, 11 Apr 2020 21:37:23 +0800 Subject: [PATCH 9/9] :wrench: chore: don't use sourcemap in publish mode --- packages/blob-util/package.json | 2 +- packages/option-util/package.json | 2 +- packages/rollup-config/package.json | 4 ++-- packages/rollup-config/tsconfig.src.json | 4 +++- packages/tool-find-inconsistent-packages/package.json | 2 +- packages/webpack-source-map-loader/package.json | 2 +- 6 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/blob-util/package.json b/packages/blob-util/package.json index 695a39b..4586e08 100644 --- a/packages/blob-util/package.json +++ b/packages/blob-util/package.json @@ -33,7 +33,7 @@ "prebuild": "rimraf lib/", "build": "rollup -c rollup.config.js", "lint:fix": "eslint 'src/**/*.{ts,tsx}' --fix", - "prepublishOnly": "yarn build" + "prepublishOnly": "cross-env ROLLUP_USE_SOURCE_MAP=false yarn build" }, "devDependencies": { "@barusu/eslint-config": "^0.0.4", diff --git a/packages/option-util/package.json b/packages/option-util/package.json index 3255dfe..f7c8e44 100644 --- a/packages/option-util/package.json +++ b/packages/option-util/package.json @@ -33,7 +33,7 @@ "prebuild": "rimraf lib/", "build": "rollup -c rollup.config.js", "lint:fix": "eslint 'src/**/*.{ts,tsx}' --fix", - "prepublishOnly": "yarn build" + "prepublishOnly": "cross-env ROLLUP_USE_SOURCE_MAP=false yarn build" }, "devDependencies": { "@barusu/eslint-config": "^0.0.4", diff --git a/packages/rollup-config/package.json b/packages/rollup-config/package.json index ff8e3a7..2fe0343 100644 --- a/packages/rollup-config/package.json +++ b/packages/rollup-config/package.json @@ -33,10 +33,10 @@ ], "scripts": { "prebuild": "yarn lint:fix && rimraf *.tsbuildinfo lib/", - "build": "tsc -b tsconfig.src.json", + "build": "tsc -p tsconfig.src.json --sourceMap --declarationMap", "postbuild": "rimraf lib/**/*.tsbuildinfo", "lint:fix": "eslint 'src/**/*.ts' --fix", - "prepublishOnly": "yarn build" + "prepublishOnly": "yarn prebuild && tsc -p tsconfig.src.json" }, "dependencies": { "@rollup/plugin-commonjs": "^11.0.2", diff --git a/packages/rollup-config/tsconfig.src.json b/packages/rollup-config/tsconfig.src.json index 7f15254..baeb051 100644 --- a/packages/rollup-config/tsconfig.src.json +++ b/packages/rollup-config/tsconfig.src.json @@ -4,7 +4,9 @@ "rootDir": "src", "outDir": "lib", "target": "es2015", - "module": "commonjs" + "module": "commonjs", + "sourceMap": false, + "declarationMap": false }, "include": [ "src" diff --git a/packages/tool-find-inconsistent-packages/package.json b/packages/tool-find-inconsistent-packages/package.json index bb3efd1..66ad096 100644 --- a/packages/tool-find-inconsistent-packages/package.json +++ b/packages/tool-find-inconsistent-packages/package.json @@ -36,7 +36,7 @@ "prebuild": "rimraf lib/", "build": "rollup -c rollup.config.js", "lint:fix": "eslint 'src/**/*.{ts,tsx}' --fix", - "prepublishOnly": "yarn build" + "prepublishOnly": "cross-env ROLLUP_USE_SOURCE_MAP=false yarn build" }, "dependencies": { "@types/fs-extra": "^8.1.0", diff --git a/packages/webpack-source-map-loader/package.json b/packages/webpack-source-map-loader/package.json index a756ddc..9957231 100644 --- a/packages/webpack-source-map-loader/package.json +++ b/packages/webpack-source-map-loader/package.json @@ -32,7 +32,7 @@ "prebuild": "rimraf lib/", "build": "rollup -c rollup.config.js", "lint:fix": "eslint 'src/**/*.{ts,tsx}' --fix", - "prepublishOnly": "yarn build" + "prepublishOnly": "cross-env ROLLUP_USE_SOURCE_MAP=false yarn build" }, "devDependencies": { "@barusu/eslint-config": "^0.0.4",