Skip to content

Conversation

@VdustR
Copy link
Contributor

@VdustR VdustR commented Oct 9, 2025

This pull request addresses a build configuration issue in the @crescendolab/css-var-ts package by updating the external dependencies list to ensure proper bundling and compatibility.

Build configuration fixes:

  • Added randombytes and slugify to the external array in tsdown.config.ts to prevent these dependencies from being bundled, which resolves issues with external modules during the build process.
  • Documented the change in a new changeset file .changeset/shaggy-ants-fail.md for proper versioning and release notes.

@changeset-bot
Copy link

changeset-bot bot commented Oct 9, 2025

🦋 Changeset detected

Latest commit: c26899c

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 6 packages
Name Type
@crescendolab/css-var-ts Patch
@repo/examples Patch
@repo/css-reset Patch
@repo/dts Patch
@repo/tsconfig Patch
@repo/utils Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@VdustR VdustR merged commit e1f77ee into main Oct 9, 2025
@VdustR VdustR deleted the build/css-var-ts/fix-external branch October 9, 2025 10:27
@gemini-code-assist
Copy link

Summary of Changes

Hello @VdustR, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a critical build configuration problem within the @crescendolab/css-var-ts package. By explicitly marking certain modules as external, the change ensures that the build process correctly handles dependencies, preventing bundling issues and improving overall compatibility. This adjustment is crucial for maintaining a robust and efficient build pipeline.

Highlights

  • Build Configuration Fix: Resolved a build configuration issue in the @crescendolab/css-var-ts package by correctly identifying external dependencies.
  • External Dependencies: Added randombytes and slugify to the external array in tsdown.config.ts to prevent them from being bundled, ensuring proper module resolution.
  • Changelog Documentation: A new changeset file, .changeset/shaggy-ants-fail.md, was created to document this build fix for versioning and release notes.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request correctly configures the build to treat randombytes and slugify as external dependencies. However, this change, combined with them being optionalDependencies, introduces a critical risk of runtime errors for consumers of the package. My review includes a detailed comment explaining the issue and suggesting a fix to ensure the package is robust and reliable for its users.

entry: ["src/index.ts"],
tsconfig: "tsconfig.lib.json",
dts: true,
external: ["randombytes", "slugify"],

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

While marking randombytes and slugify as external is correct to prevent them from being bundled, there's a significant issue with them being listed as optionalDependencies in package.json.

When these dependencies are external, the library expects the runtime environment (i.e., the consumer of your library) to provide them. However, since they are marked as optionalDependencies, there is no guarantee they will be installed.

If a consumer of @crescendolab/css-var-ts does not have randombytes or slugify installed, any attempt to use functions from your library that depend on them (like randomString or slugify from src/) will result in a runtime error, crashing the application.

To fix this, you should move randombytes and slugify from optionalDependencies to either:

  1. dependencies: If you want them to be automatically installed alongside your package.
  2. peerDependencies: If you expect the consumer of your library to explicitly install them.

Given their direct usage, dependencies seems more appropriate. This will ensure they are always available at runtime, resolving the potential for crashes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants