From 316b5a64cf6ebd4cd8cac77d099587a4739e0d29 Mon Sep 17 00:00:00 2001 From: Liu Bowen Date: Fri, 5 Mar 2021 21:03:04 +0800 Subject: [PATCH] fix: should respect user's typescript, tslib --- package.json | 12 ++++++++---- src/createRollupConfig.ts | 17 ++++++++++++++++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6b596eb54..be5c5afa2 100644 --- a/package.json +++ b/package.json @@ -94,9 +94,7 @@ "semver": "^7.1.1", "shelljs": "^0.8.3", "tiny-glob": "^0.2.6", - "ts-jest": "^25.3.1", - "tslib": "^1.9.3", - "typescript": "^3.7.3" + "ts-jest": "^25.3.1" }, "devDependencies": { "@types/eslint": "^6.1.2", @@ -123,8 +121,14 @@ "styled-components": "^5.0.1", "tiny-invariant": "^1.1.0", "tiny-warning": "^1.0.3", + "tslib": "^1.9.3", + "typescript": "^3.7.3", "yarn-deduplicate": "^2.1.1" }, + "peerDependencies": { + "tslib": "^1.9.3 || ^2.0.0", + "typescript": "^3.7.3 || ^4.0.0" + }, "husky": { "hooks": { "pre-commit": "pretty-quick --staged --pattern '!test/tests/lint/**' && yarn lint && yarn deduplicate:check && doctoc README.md" @@ -136,4 +140,4 @@ "singleQuote": true, "trailingComma": "es5" } -} +} \ No newline at end of file diff --git a/src/createRollupConfig.ts b/src/createRollupConfig.ts index 2697c2df3..d93a9059c 100644 --- a/src/createRollupConfig.ts +++ b/src/createRollupConfig.ts @@ -11,7 +11,6 @@ import resolve, { } from '@rollup/plugin-node-resolve'; import sourceMaps from 'rollup-plugin-sourcemaps'; import typescript from 'rollup-plugin-typescript2'; -import ts from 'typescript'; import { extractErrors } from './errors/extractErrors'; import { babelPluginTsdx } from './babelPluginTsdx'; @@ -23,6 +22,22 @@ const errorCodeOpts = { // shebang cache map thing because the transform only gets run once let shebang: any = {}; +let ts: typeof import('typescript'); +try { + ts = require('typescript'); +} catch (error) { + throw new Error( + `The module "typescript" was not found. tsdx requires that you include it in "dependencies" of your "package.json". To add it, run "npm install typescript"` + ); +} + +try { + require.resolve('tslib'); +} catch (error) { + console.warn( + `The module "tslib" was not found. We use it to reduce your bundle size.` + ); +} export async function createRollupConfig( opts: TsdxOptions,