Skip to content

Conversation

@benmccann
Copy link
Contributor

πŸ”— Linked issue

#3108, but against the v3 branch

❓ Type of change

  • πŸ“– Documentation (updates to the documentation, readme, or JSdoc annotations)
  • 🐞 Bug fix (a non-breaking change that fixes an issue)
  • πŸ‘Œ Enhancement (improving an existing functionality like performance)
  • ✨ New feature (a non-breaking change that adds functionality)
  • 🧹 Chore (updates to the build process or auxiliary tools and libraries)
  • ⚠️ Breaking change (fix or feature that would cause existing functionality to change)

πŸ“š Description

https://npmgraph.js.org/?q=globby - 23 dependencies
https://npmgraph.js.org/?q=tinyglobby - 2 dependencies

πŸ“ Checklist

  • I have linked an issue or discussion.
  • I have updated the documentation accordingly.

@benmccann
Copy link
Contributor Author

@pi0 just checking in to see if you might be able to give this a look. thanks!

@pi0
Copy link
Member

pi0 commented May 21, 2025

It is under my track. SuperchupuDev/tinyglobby#70 has not been solved yet (without it, users cannot ignore some public paths)

@benmccann
Copy link
Contributor Author

Thanks for the update! I see now that you'd mentioned that on the PR targeting v2, but I'm afraid I'd forgotten

Regarding the negated ignore feature, is there a project you're aware of that would need the feature? Thus far it hasn't been prioritized as it seems mostly theoretical. Most nitro users are probably already using tinyglobby as it's been adopted by Vite, Nuxt, etc. and I haven't seen anyone hit this issue yet, so I wonder if we could just list this in the breaking changes since it's going into a major

@pi0
Copy link
Member

pi0 commented May 22, 2025

Users should be able to ignore specific FS scan patterns and public assets. This was a feature Nitro (and Nuxt by using Nitro) always had and certainly users are depending on it (including current Nuxt users even if other glob uses do not need negate). This is an important feature.

We can polyfill this feature support (Nuxt additionally uses ignore). really shouldn't be something that hard to achieve from tinyglobby to replace a previous package usage specially when targeting lower install size.

@benmccann
Copy link
Contributor Author

I certainly agree on the need to ignore specific patterns! That works in tinyglobby today. The thing that doesn't is if you want to unignore a sub-directory in public assets. But I'd be curious to see an example of a project doing that

I'm not against adding the feature at all! Unfortunately it's blocked by an upstream PR which has gone unreviewed: micromatch/picomatch#137

@vercel
Copy link

vercel bot commented Sep 8, 2025

@benmccann is attempting to deploy a commit to the Nitro Team on Vercel.

A member of the Team first needs to authorize it.

@benmccann
Copy link
Contributor Author

@nuxt/kit, unimport, and vite have all switched to tinyglobby. Nuxt exclusively relies on tinyglobby now except for nitropack.

my-nuxt-project$ pnpm why tinyglobby
Legend: production dependency, optional only, dev only

nuxt-app my-nuxt-project (PRIVATE)

dependencies:
nuxt 4.1.1
└─┬ @nuxt/devtools 2.6.3
  β”œβ”€β”¬ @nuxt/devtools-kit 2.6.3
  β”‚ β”œβ”€β”¬ @nuxt/kit 3.19.1
  β”‚ β”‚ β”œβ”€β”€ tinyglobby 0.2.14
  β”‚ β”‚ └─┬ unimport 5.2.0
  β”‚ β”‚   └── tinyglobby 0.2.14
  β”‚ └─┬ vite 7.1.5 peer
  β”‚   └── tinyglobby 0.2.15
  β”œβ”€β”¬ @nuxt/kit 3.19.1
  β”‚ β”œβ”€β”€ tinyglobby 0.2.14
  β”‚ └─┬ unimport 5.2.0
  β”‚   └── tinyglobby 0.2.14
  β”œβ”€β”¬ @vue/devtools-core 7.7.7
  β”‚ └─┬ vite-hot-client 2.1.0
  β”‚   └─┬ vite 7.1.5 peer
  β”‚     └── tinyglobby 0.2.15
  β”œβ”€β”€ tinyglobby 0.2.14
  β”œβ”€β”¬ vite 7.1.5 peer
  β”‚ └── tinyglobby 0.2.15
  └─┬ vite-plugin-inspect 11.3.3
    β”œβ”€β”¬ vite 7.1.5 peer
    β”‚ └── tinyglobby 0.2.15
    └─┬ vite-dev-rpc 1.1.0
      └─┬ vite 7.1.5 peer
        └── tinyglobby 0.2.15
my-nuxt-project$ pnpm why fast-glob
Legend: production dependency, optional only, dev only

nuxt-app my-nuxt-project (PRIVATE)

dependencies:
nuxt 4.1.1
└─┬ nitropack 2.12.5
  └─┬ globby 14.1.0
    └── fast-glob 3.3.3

tinyglobby 0.2.15 was released with a number of performance improvements and it is now clearly faster than fast-glob and globby. I'm wondering if we could move forward with this given the performance improvements since that seems to have been the concern? If there's a need to un-ignore certain files, could you show where that's being done so that I can try to push for it to be prioritized on the tinyglobby side?

@pi0
Copy link
Member

pi0 commented Sep 8, 2025

This is good for nitro@3 which will be available in the upcoming Nuxt major version πŸ‘πŸΌ

(removed covering feature: 4fbd74e)


To backport nitropack@2, we need negate support and avoid breaking changes, and executing the git binary is not a substitute. A polyfill with npm:ignore might be as we discussed before...

@pi0 pi0 changed the title chore: switch to tinyglobby refactor!: switch to tinyglobby Sep 8, 2025
@pi0 pi0 merged commit 0f61550 into nitrojs:v3 Sep 8, 2025
3 of 4 checks passed
@benmccann
Copy link
Contributor Author

thanks!!

@benmccann benmccann deleted the tinyglobby-v3 branch September 9, 2025 13:18
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