From 34364c2ff2d870db6d91ab9aa9c54669b30111b5 Mon Sep 17 00:00:00 2001 From: Samuel Elliott Date: Tue, 28 Feb 2023 14:05:49 +0000 Subject: [PATCH] Skip TypeScript when bundling --- package-lock.json | 34 --------------------- package.json | 1 - rollup.config.js | 76 +++++++++++++++++------------------------------ 3 files changed, 28 insertions(+), 83 deletions(-) diff --git a/package-lock.json b/package-lock.json index ff29eac..b3dda0b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,6 @@ "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^14.1.0", "@rollup/plugin-replace": "^4.0.0", - "@rollup/plugin-typescript": "^8.5.0", "@types/body-parser": "^1.19.2", "@types/cli-table": "^0.3.1", "@types/debug": "^4.1.7", @@ -348,29 +347,6 @@ "rollup": "^1.20.0 || ^2.0.0" } }, - "node_modules/@rollup/plugin-typescript": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.5.0.tgz", - "integrity": "sha512-wMv1/scv0m/rXx21wD2IsBbJFba8wGF3ErJIr6IKRfRj49S85Lszbxb4DCo8iILpluTjk2GAAu9CoZt4G3ppgQ==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0", - "tslib": "*", - "typescript": ">=3.7.0" - }, - "peerDependenciesMeta": { - "tslib": { - "optional": true - } - } - }, "node_modules/@rollup/pluginutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", @@ -4850,16 +4826,6 @@ "magic-string": "^0.25.7" } }, - "@rollup/plugin-typescript": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.5.0.tgz", - "integrity": "sha512-wMv1/scv0m/rXx21wD2IsBbJFba8wGF3ErJIr6IKRfRj49S85Lszbxb4DCo8iILpluTjk2GAAu9CoZt4G3ppgQ==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "resolve": "^1.17.0" - } - }, "@rollup/pluginutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", diff --git a/package.json b/package.json index 60cb4b3..6b21136 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,6 @@ "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^14.1.0", "@rollup/plugin-replace": "^4.0.0", - "@rollup/plugin-typescript": "^8.5.0", "@types/body-parser": "^1.19.2", "@types/cli-table": "^0.3.1", "@types/debug": "^4.1.7", diff --git a/rollup.config.js b/rollup.config.js index fbf0705..575a09a 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -2,8 +2,8 @@ import * as path from 'path'; import { fileURLToPath } from 'url'; import * as fs from 'fs'; import * as child_process from 'child_process'; +import { Module } from 'module'; -import typescript from '@rollup/plugin-typescript'; import commonjs from '@rollup/plugin-commonjs'; import alias from '@rollup/plugin-alias'; import replace from '@rollup/plugin-replace'; @@ -43,7 +43,7 @@ const release = process.env.NODE_ENV === 'production' ? process.env.CI_COMMIT_TA * @type {import('@rollup/plugin-replace').RollupReplaceOptions} */ const replace_options = { - include: ['src/util/product.ts'], + include: ['dist/util/product.js'], values: { 'globalThis.__NXAPI_BUNDLE_PKG__': JSON.stringify(pkg), 'globalThis.__NXAPI_BUNDLE_GIT__': JSON.stringify(git), @@ -58,14 +58,14 @@ const replace_options = { * @type {import('rollup').RollupOptions['watch']} */ const watch = { - include: 'src/**', + include: 'dist/**', }; /** * @type {import('rollup').RollupOptions} */ const main = { - input: ['src/cli-entry.ts', 'src/app/main/index.ts'], + input: ['dist/cli-entry.js', 'dist/app/main/index.js'], output: { dir: 'dist/bundle', format: 'es', @@ -79,19 +79,17 @@ const main = { }, plugins: [ replace(replace_options), - typescript({ - outDir: 'dist/bundle/ts', - noEmit: true, - declaration: false, - }), commonjs({ - // the ".ts" extension is required - extensions: ['.js', '.jsx', '.ts', '.tsx'], esmExternals: true, // events and stream modify module.exports requireReturnsDefault: 'preferred', }), json(), + alias({ + entries: [ + ...Module.builtinModules.map(m => ({find: m, replacement: 'node:' + m})), + ], + }), nodeResolve({ exportConditions: ['node'], browser: false, @@ -110,29 +108,26 @@ const main = { * @type {import('rollup').RollupOptions} */ const app_entry = { - input: 'src/app/app-entry.cts', + input: 'dist/app/app-entry.cjs', output: { file: 'dist/bundle/app-entry.cjs', format: 'iife', inlineDynamicImports: true, sourcemap: true, + globals: { + 'electron': 'require("electron")', + }, }, plugins: [ replace(replace_options), replace({ - include: ['src/app/app-entry.cts'], + include: ['dist/app/app-entry.cjs'], values: { '__NXAPI_BUNDLE_APP_MAIN__': JSON.stringify('./app-main-bundle.js'), }, preventAssignment: true, }), - typescript({ - noEmit: true, - declaration: false, - }), commonjs({ - // the ".ts" extension is required - extensions: ['.js', '.jsx', '.ts', '.tsx'], esmExternals: true, // events and stream modify module.exports requireReturnsDefault: 'preferred', @@ -146,7 +141,8 @@ const app_entry = { ], external: [ 'electron', - path.resolve(__dirname, 'src/app/app-main-bundle.js'), + path.resolve(__dirname, 'dist/app/app-main-bundle.js'), + path.resolve(__dirname, 'dist/app/main/index.js'), ], watch, }; @@ -155,7 +151,7 @@ const app_entry = { * @type {import('rollup').RollupOptions} */ const app_preload = { - input: 'src/app/preload/index.ts', + input: 'dist/app/preload/index.js', output: { file: 'dist/app/bundle/preload.cjs', format: 'cjs', @@ -163,13 +159,7 @@ const app_preload = { }, plugins: [ replace(replace_options), - typescript({ - noEmit: true, - declaration: false, - }), commonjs({ - // the ".ts" extension is required - extensions: ['.js', '.jsx', '.ts', '.tsx'], esmExternals: true, }), nodeResolve({ @@ -187,20 +177,14 @@ const app_preload = { * @type {import('rollup').RollupOptions} */ const app_preload_webservice = { - input: 'src/app/preload-webservice/index.ts', + input: 'dist/app/preload-webservice/index.js', output: { file: 'dist/app/bundle/preload-webservice.cjs', format: 'cjs', }, plugins: [ replace(replace_options), - typescript({ - noEmit: true, - declaration: false, - }), commonjs({ - // the ".ts" extension is required - extensions: ['.js', '.jsx', '.ts', '.tsx'], esmExternals: true, }), nodeResolve({ @@ -218,7 +202,7 @@ const app_preload_webservice = { * @type {import('rollup').RollupOptions} */ const app_browser = { - input: 'src/app/browser/index.ts', + input: 'dist/app/browser/index.js', output: { dir: 'dist/app/bundle', format: 'es', @@ -238,14 +222,7 @@ const app_browser = { title: 'nxapi', }), replace(replace_options), - typescript({ - outDir: 'dist/app/bundle/ts', - noEmit: true, - declaration: false, - }), commonjs({ - // the ".ts" extension is required - extensions: ['.js', '.jsx', '.ts', '.tsx'], esmExternals: true, }), nodePolyfill(), @@ -255,6 +232,7 @@ const app_browser = { // used when resolving react-native-web. For some reason this causes both versions // to be included in the bundle, so here we explicitly use the CommonJS build. {find: 'react-native', replacement: path.resolve(__dirname, 'node_modules', 'react-native-web', 'dist', 'cjs', 'index.js')}, + {find: 'react-native-web', replacement: path.resolve(__dirname, 'node_modules', 'react-native-web', 'dist', 'cjs', 'index.js')}, // rollup-plugin-polyfill-node doesn't support node: module identifiers {find: /^node:(.+)/, replacement: '$1'}, @@ -268,10 +246,12 @@ const app_browser = { watch, }; +const skip = process.env.BUNDLE_SKIP?.split(',') ?? []; + export default [ - main, - app_entry, - app_preload, - app_preload_webservice, - app_browser, -]; + !skip?.includes('main') && main, + !skip?.includes('app-entry') && app_entry, + !skip?.includes('app-preload') && app_preload, + !skip?.includes('app-preload-webservice') && app_preload_webservice, + !skip?.includes('app-browser') && app_browser, +].filter(c => c);