From dfafb274354523f733922ad25f57ef9d9ff4235b Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Mon, 6 Nov 2023 14:23:48 -0500 Subject: [PATCH] chore: packages do not explicitly run tsc (#28450) Issue number: N/A --------- ## What is the current behavior? Rollup has a plugin to handle TypeScript compilation that we are not using. As a result, we are maintaining unnecessary infrastructure such as compiling to `dist-transpiled`(TS to JS) and then compiling the results to `dist` (JS files to bundled code). ## What is the new behavior? - Vue, Vue Router, React, and React Router now make use of the Rollup Typescript plugin to handle TypeScript compilation for us. This lets us remove the `dist-transpiled` directory altogether and the manual `tsc` invocation. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information Developers should not see any changes in how they consume Ionic. This just hands the TypeScript compilation step off to the Rollup plugin. Dev build: `7.5.3-dev.11698859252.15ac163e` --- packages/react-router/package-lock.json | 96 ++++++++++++++++++++++ packages/react-router/package.json | 6 +- packages/react-router/rollup.config.js | 9 +- packages/react-router/tsconfig.json | 2 +- packages/react/package-lock.json | 105 +++++++++++++++++++++++- packages/react/package.json | 7 +- packages/react/rollup.config.js | 9 +- packages/react/tsconfig.json | 2 +- packages/vue-router/package-lock.json | 83 ++++++++++++++++++- packages/vue-router/package.json | 5 +- packages/vue-router/rollup.config.js | 5 +- packages/vue/package-lock.json | 82 ++++++++++++++++++ packages/vue/package.json | 7 +- packages/vue/rollup.config.js | 4 +- packages/vue/tsconfig.json | 2 +- 15 files changed, 393 insertions(+), 31 deletions(-) diff --git a/packages/react-router/package-lock.json b/packages/react-router/package-lock.json index 8d3db7953d..ac71782287 100644 --- a/packages/react-router/package-lock.json +++ b/packages/react-router/package-lock.json @@ -16,6 +16,7 @@ "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", "@rollup/plugin-node-resolve": "^8.1.0", + "@rollup/plugin-typescript": "^11.1.5", "@types/node": "^14.0.14", "@types/react": "16.14.0", "@types/react-dom": "^16.9.0", @@ -449,6 +450,66 @@ "rollup": "^1.20.0||^2.0.0" } }, + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz", + "integrity": "sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript/node_modules/@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript/node_modules/@types/estree": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", + "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", + "dev": true + }, + "node_modules/@rollup/plugin-typescript/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "node_modules/@rollup/pluginutils": { "version": "3.1.0", "dev": true, @@ -3785,6 +3846,41 @@ "resolve": "^1.17.0" } }, + "@rollup/plugin-typescript": { + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz", + "integrity": "sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@types/estree": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", + "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + } + } + }, "@rollup/pluginutils": { "version": "3.1.0", "dev": true, diff --git a/packages/react-router/package.json b/packages/react-router/package.json index b1cab76d45..3df4cc1ff5 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -21,13 +21,12 @@ }, "scripts": { "build": "npm run clean && npm run compile", - "clean": "rimraf dist dist-transpiled", - "compile": "npm run tsc && rollup -c", + "clean": "rimraf dist", + "compile": "rollup -c", "eslint": "eslint src", "prettier": "prettier \"./src/**/*.{html,ts,tsx,js,jsx}\"", "lint": "npm run eslint && npm run prettier -- --write --cache", "lint.fix": "npm run eslint -- --fix && npm run prettier -- --write --cache", - "tsc": "tsc -p .", "sync": "sh ./scripts/sync.sh" }, "main": "dist/index.js", @@ -49,6 +48,7 @@ "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", "@rollup/plugin-node-resolve": "^8.1.0", + "@rollup/plugin-typescript": "^11.1.5", "@types/node": "^14.0.14", "@types/react": "16.14.0", "@types/react-dom": "^16.9.0", diff --git a/packages/react-router/rollup.config.js b/packages/react-router/rollup.config.js index 639dffa80e..29b3cf3983 100644 --- a/packages/react-router/rollup.config.js +++ b/packages/react-router/rollup.config.js @@ -1,8 +1,9 @@ import sourcemaps from 'rollup-plugin-sourcemaps'; import resolve from '@rollup/plugin-node-resolve'; +import typescript from '@rollup/plugin-typescript'; export default { - input: 'dist-transpiled/index.js', + input: 'src/index.ts', output: [ { file: 'dist/index.js', @@ -11,5 +12,9 @@ export default { } ], external: (id) => !/^(\.|\/)/.test(id), - plugins: [resolve(), sourcemaps()], + plugins: [ + typescript(), + resolve(), + sourcemaps() + ], }; diff --git a/packages/react-router/tsconfig.json b/packages/react-router/tsconfig.json index 0224696dc0..d51e26286c 100644 --- a/packages/react-router/tsconfig.json +++ b/packages/react-router/tsconfig.json @@ -15,7 +15,7 @@ "noImplicitReturns": true, "noUnusedLocals": true, "noUnusedParameters": true, - "outDir": "dist-transpiled", + "outDir": "dist", "declarationDir": "dist/types", "removeComments": false, "inlineSources": true, diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index ff6ebea801..2acf26ce92 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -17,6 +17,7 @@ "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", "@rollup/plugin-node-resolve": "^8.1.0", + "@rollup/plugin-typescript": "^11.1.5", "@rollup/plugin-virtual": "^2.0.3", "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", @@ -1285,6 +1286,66 @@ "rollup": "^1.20.0||^2.0.0" } }, + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz", + "integrity": "sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript/node_modules/@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript/node_modules/@types/estree": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", + "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", + "dev": true + }, + "node_modules/@rollup/plugin-typescript/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "node_modules/@rollup/plugin-virtual": { "version": "2.0.3", "dev": true, @@ -8806,9 +8867,10 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.0", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.6" }, @@ -12174,6 +12236,41 @@ "resolve": "^1.17.0" } }, + "@rollup/plugin-typescript": { + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz", + "integrity": "sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@types/estree": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", + "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + } + } + }, "@rollup/plugin-virtual": { "version": "2.0.3", "dev": true, @@ -17213,7 +17310,9 @@ "dev": true }, "picomatch": { - "version": "2.3.0", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { diff --git a/packages/react/package.json b/packages/react/package.json index 1ba5f1d763..dc47bf300c 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -21,13 +21,12 @@ }, "scripts": { "build": "npm run clean && npm run copy && npm run compile", - "clean": "rimraf dist && rimraf dist-transpiled && rimraf routing", - "compile": "npm run tsc && rollup -c", + "clean": "rimraf dist && rimraf routing", + "compile": "rollup -c", "eslint": "eslint src", "prettier": "prettier \"./src/**/*.{html,ts,tsx,js,jsx}\"", "lint": "npm run eslint && npm run prettier -- --write --cache", "lint.fix": "npm run eslint -- --fix && npm run prettier -- --write --cache", - "tsc": "tsc -p .", "copy": "node scripts/copy.js", "test.spec": "jest --ci", "test.treeshake": "node scripts/treeshaking.js dist/index.esm.js", @@ -52,6 +51,7 @@ "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", "@rollup/plugin-node-resolve": "^8.1.0", + "@rollup/plugin-typescript": "^11.1.5", "@rollup/plugin-virtual": "^2.0.3", "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", @@ -83,7 +83,6 @@ "testPathIgnorePatterns": [ "cypress", "node_modules", - "dist-transpiled", "dist", "test/base/*", "test/apps/*", diff --git a/packages/react/rollup.config.js b/packages/react/rollup.config.js index 1af9f78dc4..a8ebd1eeb4 100644 --- a/packages/react/rollup.config.js +++ b/packages/react/rollup.config.js @@ -1,12 +1,9 @@ import resolve from '@rollup/plugin-node-resolve'; import sourcemaps from 'rollup-plugin-sourcemaps'; -// import json from '@rollup/plugin-json'; +import typescript from '@rollup/plugin-typescript'; export default { - input: { - index: 'dist-transpiled/index', - // 'routing/index': 'dist-transpiled/routing/index' - }, + input: 'src/index.ts', output: [ { dir: 'dist/', @@ -18,8 +15,8 @@ export default { ], external: (id) => !/^(\.|\/)/.test(id), plugins: [ + typescript(), resolve(), sourcemaps(), - // json() ], }; diff --git a/packages/react/tsconfig.json b/packages/react/tsconfig.json index 4582ca37b6..e0e309a1c9 100644 --- a/packages/react/tsconfig.json +++ b/packages/react/tsconfig.json @@ -15,7 +15,7 @@ "noImplicitReturns": true, "noUnusedLocals": true, "noUnusedParameters": true, - "outDir": "dist-transpiled", + "outDir": "dist", "declarationDir": "dist/types", "removeComments": false, "inlineSources": true, diff --git a/packages/vue-router/package-lock.json b/packages/vue-router/package-lock.json index ce5d5e0b86..27769ae277 100644 --- a/packages/vue-router/package-lock.json +++ b/packages/vue-router/package-lock.json @@ -14,6 +14,7 @@ "devDependencies": { "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", + "@rollup/plugin-typescript": "^11.1.5", "@types/jest": "^28.1.1", "@types/node": "^14.10.1", "@typescript-eslint/eslint-plugin": "^5.48.2", @@ -22,7 +23,6 @@ "jest": "^28.1.1", "jest-environment-jsdom": "^28.1.1", "prettier": "^2.8.3", - "rimraf": "^3.0.2", "rollup": "^2.32.1", "ts-jest": "^28.0.5", "typescript": "^4.7.3", @@ -1278,6 +1278,54 @@ "node": ">= 8" } }, + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz", + "integrity": "sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@sinclair/typebox": { "version": "0.23.5", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", @@ -1369,6 +1417,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/estree": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", + "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", + "dev": true + }, "node_modules/@types/graceful-fs": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", @@ -8118,6 +8172,27 @@ "fastq": "^1.6.0" } }, + "@rollup/plugin-typescript": { + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz", + "integrity": "sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + } + }, + "@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, "@sinclair/typebox": { "version": "0.23.5", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", @@ -8198,6 +8273,12 @@ "version": "1.1.1", "dev": true }, + "@types/estree": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", + "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", + "dev": true + }, "@types/graceful-fs": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", diff --git a/packages/vue-router/package.json b/packages/vue-router/package.json index c25983c77c..0a81900f1c 100644 --- a/packages/vue-router/package.json +++ b/packages/vue-router/package.json @@ -9,10 +9,8 @@ "lint": "npm run eslint && npm run prettier -- --write --cache", "lint.fix": "npm run eslint -- --fix && npm run prettier -- --write --cache", "bundle": "rollup --config rollup.config.js", - "build": "npm run clean && npm run compile && npm run bundle", + "build": "npm run clean && npm run bundle", "clean": "rimraf dist", - "compile": "npm run tsc", - "tsc": "tsc -p .", "sync": "sh ./scripts/sync.sh" }, "main": "./dist/index.js", @@ -50,6 +48,7 @@ "devDependencies": { "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", + "@rollup/plugin-typescript": "^11.1.5", "@types/jest": "^28.1.1", "@types/node": "^14.10.1", "@typescript-eslint/eslint-plugin": "^5.48.2", diff --git a/packages/vue-router/rollup.config.js b/packages/vue-router/rollup.config.js index 2114736e9c..1269164780 100644 --- a/packages/vue-router/rollup.config.js +++ b/packages/vue-router/rollup.config.js @@ -1,5 +1,7 @@ +import typescript from '@rollup/plugin-typescript'; + export default { - input: 'dist-transpiled/index.js', + input: 'src/index.ts', output: [ { file: 'dist/index.js', @@ -7,5 +9,6 @@ export default { sourcemap: true, } ], + plugins: [typescript()], external: ['vue-router', 'vue'] }; diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json index d251c8d01a..dabadc13e7 100644 --- a/packages/vue/package-lock.json +++ b/packages/vue/package-lock.json @@ -16,6 +16,7 @@ "@babel/types": "^7.18.4", "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", + "@rollup/plugin-typescript": "^11.1.5", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", "change-case": "^4.1.1", @@ -422,6 +423,54 @@ "node": ">= 8" } }, + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz", + "integrity": "sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@stencil/core": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.6.0.tgz", @@ -434,6 +483,12 @@ "npm": ">=7.10.0" } }, + "node_modules/@types/estree": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", + "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", + "dev": true + }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -3872,11 +3927,38 @@ "fastq": "^1.6.0" } }, + "@rollup/plugin-typescript": { + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz", + "integrity": "sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + } + }, + "@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, "@stencil/core": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.6.0.tgz", "integrity": "sha512-5Y6/fP28aspPDRB+Tz5GuB1jRVGuUEk5/rnyE8ACGcuzEOG+zR0A/IHRJSU3XmCxUlVDKfKoO6St5W84oUCVMA==" }, + "@types/estree": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", + "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", + "dev": true + }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", diff --git a/packages/vue/package.json b/packages/vue/package.json index d5307d0e6d..76d4f26de9 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -8,11 +8,9 @@ "lint": "npm run eslint && npm run prettier -- --write --cache", "lint.fix": "npm run eslint -- --fix && npm run prettier -- --write --cache", "test": "jest", - "build": "npm run clean && npm run copy && npm run copy.overlays && npm run compile && npm run bundle && npm run build.vetur && npm run build.web-types", + "build": "npm run clean && npm run copy && npm run copy.overlays && npm run bundle && npm run build.vetur && npm run build.web-types", "bundle": "rollup --config rollup.config.js", - "clean": "rimraf dist dist-transpiled", - "compile": "npm run tsc", - "tsc": "tsc -p .", + "clean": "rimraf dist", "build.web-types": "node ./scripts/build-web-types.js", "build.vetur": "node ./scripts/build-vetur.js", "copy": "node ./scripts/copy-css.js", @@ -53,6 +51,7 @@ "@babel/types": "^7.18.4", "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", + "@rollup/plugin-typescript": "^11.1.5", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", "change-case": "^4.1.1", diff --git a/packages/vue/rollup.config.js b/packages/vue/rollup.config.js index 2df0de3501..1a4f607d2b 100644 --- a/packages/vue/rollup.config.js +++ b/packages/vue/rollup.config.js @@ -1,7 +1,8 @@ +import typescript from '@rollup/plugin-typescript'; const external = ['vue', 'vue-router']; export default { - input: 'dist-transpiled/index.js', + input: 'src/index.ts', output: [ { dir: 'dist/', @@ -11,5 +12,6 @@ export default { sourcemap: true }, ], + plugins: [typescript()], external: id => external.includes(id) || id.startsWith('@ionic/core') || id.startsWith('ionicons') }; diff --git a/packages/vue/tsconfig.json b/packages/vue/tsconfig.json index b5f4dabe80..68d8436547 100644 --- a/packages/vue/tsconfig.json +++ b/packages/vue/tsconfig.json @@ -13,7 +13,7 @@ "noImplicitReturns": false, "noUnusedLocals": true, "noUnusedParameters": true, - "outDir": "dist-transpiled", + "outDir": "dist", "declarationDir": "dist/types", "removeComments": false, "sourceMap": true,