diff --git a/package.json b/package.json index b59665a783..48584e3e4f 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,7 @@ "react-dom": "^18.2.0", "rimraf": "^5.0.1", "rollup": "^3.23.0", + "rollup-plugin-node-externals": "^6.1.0", "rollup-plugin-preserve-directives": "^0.2.0", "rollup-plugin-visualizer": "^5.9.0", "rollup-preset-solid": "^2.0.1", diff --git a/packages/query-async-storage-persister/rollup.config.mjs b/packages/query-async-storage-persister/rollup.config.mjs index 08afdabc0f..4521373031 100644 --- a/packages/query-async-storage-persister/rollup.config.mjs +++ b/packages/query-async-storage-persister/rollup.config.mjs @@ -9,8 +9,5 @@ export default defineConfig( jsName: 'QueryAsyncStoragePersister', outputFile: 'index', entryFile: './src/index.ts', - globals: { - '@tanstack/query-persist-client-core': 'QueryPersistClientCore', - }, }), ) diff --git a/packages/query-broadcast-client-experimental/rollup.config.mjs b/packages/query-broadcast-client-experimental/rollup.config.mjs index fb979d8a5e..0383ce1e44 100644 --- a/packages/query-broadcast-client-experimental/rollup.config.mjs +++ b/packages/query-broadcast-client-experimental/rollup.config.mjs @@ -9,9 +9,5 @@ export default defineConfig( jsName: 'QueryBroadcastClient', outputFile: 'index', entryFile: './src/index.ts', - globals: { - '@tanstack/query-core': 'QueryCore', - 'broadcast-channel': 'BroadcastChannel', - }, }), ) diff --git a/packages/query-core/rollup.config.mjs b/packages/query-core/rollup.config.mjs index a40f15a940..12a2a5a1ff 100644 --- a/packages/query-core/rollup.config.mjs +++ b/packages/query-core/rollup.config.mjs @@ -9,6 +9,5 @@ export default defineConfig( jsName: 'QueryCore', outputFile: 'index', entryFile: './src/index.ts', - globals: {}, }), ) diff --git a/packages/query-persist-client-core/rollup.config.mjs b/packages/query-persist-client-core/rollup.config.mjs index cb6b0152b7..2a7fdabaf5 100644 --- a/packages/query-persist-client-core/rollup.config.mjs +++ b/packages/query-persist-client-core/rollup.config.mjs @@ -9,8 +9,5 @@ export default defineConfig( jsName: 'QueryPersistClientCore', outputFile: 'index', entryFile: './src/index.ts', - globals: { - '@tanstack/query-core': 'QueryCore', - }, }), ) diff --git a/packages/query-sync-storage-persister/rollup.config.mjs b/packages/query-sync-storage-persister/rollup.config.mjs index 46ef8a4ca6..620b7c3db3 100644 --- a/packages/query-sync-storage-persister/rollup.config.mjs +++ b/packages/query-sync-storage-persister/rollup.config.mjs @@ -9,8 +9,5 @@ export default defineConfig( jsName: 'QuerySyncStoragePersister', outputFile: 'index', entryFile: './src/index.ts', - globals: { - '@tanstack/query-persist-client-core': 'QueryPersistClientCore', - }, }), ) diff --git a/packages/react-query-devtools/rollup.config.mjs b/packages/react-query-devtools/rollup.config.mjs index b1d5088fb3..8e95c44705 100644 --- a/packages/react-query-devtools/rollup.config.mjs +++ b/packages/react-query-devtools/rollup.config.mjs @@ -9,25 +9,12 @@ export default defineConfig([ jsName: 'ReactQueryDevtools', outputFile: 'index', entryFile: './src/index.ts', - globals: { - react: 'React', - 'react-dom': 'ReactDOM', - '@tanstack/react-query': 'ReactQuery', - '@tanstack/query-devtools': 'TanstackQueryDevtools', - }, }), buildConfigs({ name: 'react-query-devtools-prod', jsName: 'ReactQueryDevtools', outputFile: 'index.prod', entryFile: './src/index.ts', - globals: { - react: 'React', - 'react-dom': 'ReactDOM', - '@tanstack/react-query': 'ReactQuery', - '@tanstack/match-sorter-utils': 'MatchSorterUtils', - superjson: 'SuperJson', - }, forceDevEnv: true, forceBundle: true, }), diff --git a/packages/react-query-persist-client/rollup.config.mjs b/packages/react-query-persist-client/rollup.config.mjs index 5f9ea8ba96..9bbf5696e2 100644 --- a/packages/react-query-persist-client/rollup.config.mjs +++ b/packages/react-query-persist-client/rollup.config.mjs @@ -9,10 +9,5 @@ export default defineConfig( jsName: 'ReactQueryPersistClient', outputFile: 'index', entryFile: './src/index.ts', - globals: { - react: 'React', - '@tanstack/query-persist-client-core': 'QueryPersistClientCore', - '@tanstack/react-query': 'ReactQuery', - }, }), ) diff --git a/packages/react-query/rollup.config.mjs b/packages/react-query/rollup.config.mjs index a940a7d60d..0a6b7d623b 100644 --- a/packages/react-query/rollup.config.mjs +++ b/packages/react-query/rollup.config.mjs @@ -9,11 +9,5 @@ export default defineConfig( jsName: 'ReactQuery', outputFile: 'index', entryFile: './src/index.ts', - globals: { - react: 'React', - 'react-dom': 'ReactDOM', - '@tanstack/query-core': 'QueryCore', - 'react-native': 'ReactNative', - }, }), ) diff --git a/packages/vue-query/rollup.config.mjs b/packages/vue-query/rollup.config.mjs index c56e4bdac4..234a1218c7 100644 --- a/packages/vue-query/rollup.config.mjs +++ b/packages/vue-query/rollup.config.mjs @@ -9,12 +9,5 @@ export default defineConfig( jsName: 'VueQuery', outputFile: 'index', entryFile: './src/index.ts', - globals: { - '@tanstack/query-core': 'QueryCore', - vue: 'Vue', - 'vue-demi': 'Vue', - '@tanstack/match-sorter-utils': 'MatchSorter', - '@vue/devtools-api': 'DevtoolsApi', - }, }), ) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6dfa8ff1f6..a52857ec8f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -159,6 +159,9 @@ importers: rollup: specifier: ^3.23.0 version: 3.23.0 + rollup-plugin-node-externals: + specifier: ^6.1.0 + version: 6.1.0(rollup@3.23.0) rollup-plugin-preserve-directives: specifier: ^0.2.0 version: 0.2.0(rollup@3.23.0) @@ -14287,6 +14290,15 @@ packages: glob: 10.2.6 dev: true + /rollup-plugin-node-externals@6.1.0(rollup@3.23.0): + resolution: {integrity: sha512-lFgwuW2zkHpoACW8afsjFUBxcBfAX8HMRkz9jyezsXLba5Ii46SxiJG3wGztFzL1QpQQaMoUnXdwz4YJScue7Q==} + engines: {node: '>=16.0.0'} + peerDependencies: + rollup: ^3.0.0 + dependencies: + rollup: 3.23.0 + dev: true + /rollup-plugin-preserve-directives@0.2.0(rollup@3.23.0): resolution: {integrity: sha512-KUwbBaFvD1zFIDNnOkR+u64sSod3m0l6q46/SzTOa4GTQ6hp6w0FRr2u7x99YkY9qhlna5panmTmuLWeJ/2KWw==} peerDependencies: diff --git a/scripts/getRollupConfig.mjs b/scripts/getRollupConfig.mjs index 81318897b0..c78cd812c0 100644 --- a/scripts/getRollupConfig.mjs +++ b/scripts/getRollupConfig.mjs @@ -6,6 +6,7 @@ import { visualizer } from 'rollup-plugin-visualizer' import replace from '@rollup/plugin-replace' import { nodeResolve } from '@rollup/plugin-node-resolve' import commonJS from '@rollup/plugin-commonjs' +import externals from 'rollup-plugin-node-externals' import withSolid from 'rollup-preset-solid' import preserveDirectives from 'rollup-plugin-preserve-directives' import { rootDir } from './config.mjs' @@ -33,14 +34,12 @@ const babelPlugin = () => * @param {string} opts.jsName - The JavaScript name. * @param {string} opts.outputFile - The output file. * @param {string} opts.entryFile - The entry file. - * @param {Record} opts.globals - The globals record. * @param {boolean} [opts.forceDevEnv] - Flag indicating whether to force development environment. * @param {boolean} [opts.forceBundle] - Flag indicating whether to force bundling. * @returns {import('rollup').RollupOptions} */ export function buildConfigs(opts) { const input = [opts.entryFile] - const externalDeps = Object.keys(opts.globals) const forceDevEnv = opts.forceDevEnv || false const forceBundle = opts.forceBundle || false @@ -81,12 +80,17 @@ export function buildConfigs(opts) { return { input, output: forceBundle ? bundleOutput : normalOutput, - external: (moduleName) => externalDeps.includes(moduleName), plugins: [ commonJS(), babelPlugin(), nodeResolve({ extensions: ['.ts', '.tsx', '.native.ts'] }), forceDevEnv ? forceEnvPlugin('development') : undefined, + externals({ + packagePath: './package.json', + deps: true, + devDeps: true, + peerDeps: true, + }), preserveDirectives(), visualizer({ filename: `./build/stats-html.html`,