diff --git a/.gitignore b/.gitignore index a0c91f38..8e5cfef6 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,6 @@ yarn-error.log* # vscode plugin *.vsix + +# npm pack artifacts +*.tgz diff --git a/packages/raystack/.npmignore b/packages/raystack/.npmignore new file mode 100644 index 00000000..b4482701 --- /dev/null +++ b/packages/raystack/.npmignore @@ -0,0 +1,13 @@ +# Exclude test files +**/__tests__/ +**/__tests__/** +# Exclude dev files +vitest.setup.* +figma/ +figma/** +# Exclude bundled dependencies +node_modules/ +node_modules/** +_virtual/ +_virtual/** + diff --git a/packages/raystack/package.json b/packages/raystack/package.json index b3d11d79..0931f358 100644 --- a/packages/raystack/package.json +++ b/packages/raystack/package.json @@ -95,6 +95,7 @@ "react": "^19.0.1", "react-dom": "^19.0.1", "rollup": "^3.25.1", + "rollup-plugin-node-externals": "^5.1.0", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-preserve-directives": "^0.4.0", "rollup-plugin-tsconfig-paths": "^1.5.2", diff --git a/packages/raystack/rollup.config.mjs b/packages/raystack/rollup.config.mjs index b14cf77b..52f14405 100644 --- a/packages/raystack/rollup.config.mjs +++ b/packages/raystack/rollup.config.mjs @@ -4,11 +4,28 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import typescript from '@rollup/plugin-typescript'; import svgr from '@svgr/rollup'; import postcssImport from 'postcss-import'; +import nodeExternals from 'rollup-plugin-node-externals'; import postcss from 'rollup-plugin-postcss'; import preserveDirectives from 'rollup-plugin-preserve-directives'; import tsconfigPaths from 'rollup-plugin-tsconfig-paths'; const createPlugins = ({ rootDir, declarationDir }) => [ + // Externalize all dependencies and peer dependencies + // This must be placed before nodeResolve() to work correctly + nodeExternals({ + deps: true, + devDeps: false, + peerDeps: true, + optDeps: true, + // Note: Include deps with subpaths that need to be externalized in include array. + // https://github.com/Septh/rollup-plugin-node-externals?tab=readme-ov-file#1-this-plugin-is-smart + include: [ + 'react/jsx-runtime', + 'react-dom/client', + /^dayjs\/plugin\/.*/, + /^@radix-ui\/.*/ + ] + }), nodeResolve(), commonjs(), svgr({ @@ -100,7 +117,6 @@ const rollupConfig = configs.map(conf => { preserveModulesRoot: conf.inputPath } ], - external: ['react', 'react-dom', 'react-dom/client', 'react/jsx-runtime'], plugins: createPlugins({ rootDir: conf.inputPath, declarationDir: conf.outputPath diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c69f9deb..60be2799 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -303,6 +303,9 @@ importers: rollup: specifier: ^3.25.1 version: 3.25.1 + rollup-plugin-node-externals: + specifier: ^5.1.0 + version: 5.1.3(rollup@3.25.1) rollup-plugin-postcss: specifier: ^4.0.2 version: 4.0.2(postcss@8.4.24)(ts-node@10.9.2(@swc/core@1.11.21)(@types/node@24.10.0)(typescript@5.4.3)) @@ -8617,6 +8620,12 @@ packages: engines: {node: 20 || >=22} hasBin: true + rollup-plugin-node-externals@5.1.3: + resolution: {integrity: sha512-Q3VMjsn39r0/mjKrX++rFlC7kwL7YZdScdyU7BEo+PrEremal3mnol/1X+wQUU++7NeqC1ZNAeRYnHGtsTu9GQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.60.0 || ^3.0.0 + rollup-plugin-postcss@4.0.2: resolution: {integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==} engines: {node: '>=10'} @@ -11593,6 +11602,8 @@ snapshots: '@parcel/logger': 2.12.0 '@parcel/utils': 2.12.0 lmdb: 2.8.5 + transitivePeerDependencies: + - '@swc/helpers' '@parcel/cache@2.9.2(@parcel/core@2.12.0)': dependencies: @@ -20534,6 +20545,10 @@ snapshots: glob: 11.0.3 package-json-from-dist: 1.0.0 + rollup-plugin-node-externals@5.1.3(rollup@3.25.1): + dependencies: + rollup: 3.25.1 + rollup-plugin-postcss@4.0.2(postcss@8.4.24)(ts-node@10.9.2(@swc/core@1.11.21)(@types/node@24.10.0)(typescript@5.4.3)): dependencies: chalk: 4.1.2