mskelton / yarn-plugin-outdated

Yarn plugin to show outdated dependencies.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Multiple exclusions?

uncleramsay opened this issue · comments

Hello,

I'm trying to use this plugin in a CI environment to fail when my dependencies are outdated. However, I have exceptions that I would like to ignore.

This is my current output:

$ yarn outdated --check
➤ YN0000: ┌ Checking for outdated dependencies
➤ YN0000: └ Completed in 47s 653ms

➤ YN0000: Package                 Current   Latest   Package Type
➤ YN0000: @pinia/testing          0.0.13    0.0.16   devDependencies
➤ YN0000: @vitejs/plugin-vue2     1.1.2     2.2.0    devDependencies
➤ YN0000: @vue/test-utils         1.3.5     2.3.2    devDependencies
➤ YN0000: start-server-and-test   1.15.4    2.0.0    devDependencies
➤ YN0000: vue                     2.7.14    3.2.47   devDependencies
➤ YN0000: vue-router              3.6.5     4.1.6    devDependencies
➤ YN0000: vue-tsc                 1.3.8     1.6.4    devDependencies

➤ YN0000: 7 dependencies are out of date
➤ YN0000: Failed with errors in 47s 662ms

I would like to exclude both vue and vue-router (I can't upgrade just yet), but I can't seem to find a way to do it. This is what I've tried so far:

Multiple globs. This doesn't seem to work at all:

$ yarn outdated '!vue' '!vue-router' --check
➤ YN0000: ┌ Checking for outdated dependencies
➤ YN0000: └ Completed in 32s 72ms

➤ YN0000: Package                 Current   Latest   Package Type
➤ YN0000: @pinia/testing          0.0.13    0.0.16   devDependencies
➤ YN0000: @vitejs/plugin-vue2     1.1.2     2.2.0    devDependencies
➤ YN0000: @vue/test-utils         1.3.5     2.3.2    devDependencies
➤ YN0000: start-server-and-test   1.15.4    2.0.0    devDependencies
➤ YN0000: vue                     2.7.14    3.2.47   devDependencies
➤ YN0000: vue-router              3.6.5     4.1.6    devDependencies
➤ YN0000: vue-tsc                 1.3.8     1.6.4    devDependencies

➤ YN0000: 7 dependencies are out of date
➤ YN0000: Failed with errors in 32s 82ms

Single glob with list. This works, but for some reason also excludes all the namespaced deps, I'm not sure why:

$ yarn outdated '!(vue|vue-router)' --check
➤ YN0000: ┌ Checking for outdated dependencies
➤ YN0000: └ Completed in 18s 665ms

➤ YN0000: Package                 Current   Latest   Package Type
➤ YN0000: start-server-and-test   1.15.4    2.0.0    devDependencies
➤ YN0000: vue-tsc                 1.3.8     1.6.4    devDependencies

➤ YN0000: 2 dependencies are out of date
➤ YN0000: Failed with errors in 18s 671ms

I'm not really sure what else to try. Is there a way I can use this and ignore multiple outdated deps? Thank you.

This should work.

yarn outdated '@*/*' '!(vue|vue-router)' --check

This plugin uses micromatch, so anything they support should be supported. Namespaced deps are a little weird though since the / makes micromatch think it's a directory.

Thank you, this seems to work well for my use case.