npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@openvue/migrate

v1.0.0

Published

Codemod that migrates a PrimeVue project to OpenVue by rewriting package names and import specifiers

Readme

@openvue/migrate

Codemod that migrates a PrimeVue project to OpenVue. OpenVue keeps PrimeVue's public API unchanged (usePrimeVue, PrimeVueResolver, the primevue Nuxt config key, p- CSS classes, pass-through options), so migrating is a package rename — which is exactly and only what this tool does.

Usage

One command, from the root of your project (for monorepos, run it at the workspace root):

npx @openvue/migrate

Run in a terminal, it shows a plan — detected package manager, PrimeVue version, the files and references it will change, and your git status — then asks how to proceed:

  • Full migration — rewrite files and run your package manager's install (detected from the lockfile) so the project builds immediately.
  • Files only — rewrite files and dependencies but leave node_modules alone; you run the install yourself.
  • Dry run — show everything, write nothing.

Pass a mode flag (--mode, --dry, --no-install) or --yes to skip the prompt; any non-terminal run (CI, piped output) is non-interactive as well.

Already installed OpenVue yourself? If openvue is found in your package.json or node_modules, the tool switches to sources-only mode: dependencies and node_modules are left completely untouched, no install runs, and only source-file imports are rewritten.

| Option | Description | | --------------- | -------------------------------------------------------- | | [dir] | Directory to migrate (defaults to the current directory) | | --mode <mode> | full, files-only, or dry; runs without prompting | | --dry | Report what would change without writing any files | | --no-install | Rewrite files but do not run the package manager install | | --force | Do not stop on an uncommitted git working tree | | --yes, -y | Skip prompts and use defaults (full migration) |

In interactive mode a dirty git tree only asks for confirmation. Non-interactively (a mode flag, --yes, or CI) it stops unless you pass --force, so the migration stays a single reviewable, revertible diff.

What it does

  1. Renames dependencies in every package.json (monorepos supported): dependencies, devDependencies, peerDependencies, optionalDependencies, peerDependenciesMeta, resolutions, overrides and pnpm.overrides, including selector keys like **/primevue or primevue@^4. workspace:/catalog:/npm: protocol values are preserved, and pnpm-workspace.yaml catalogs are rewritten too. If both primevue and openvue entries exist, yours wins and the leftover is removed.
  2. Rewrites module specifiers in .js, .mjs, .cjs, .ts, .mts, .cts, .jsx, .tsx, .vue, .astro and .mdx files — static imports, import type, require(), dynamic import(), Nuxt modules arrays, Vite optimizeDeps/transpile entries, and generated components.d.ts files. Subpath (primevue/button) and scoped (@primevue/*) specifiers are unambiguous and rewritten anywhere; a bare 'primevue' string is only rewritten in import positions (or anywhere in *.config.* files), so runtime data like provider: 'primevue' is never touched.
  3. Audits what's left: after rewriting, it scans sources, styles, HTML and tsconfig files for surviving PrimeVue references (interpolated import(\primevue/${name}`), CSS @imports, CDN urls, tsconfig paths`) and lists each one with file and line, so it never reports success while actionable references remain.

The rename mapping:

| From | To | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | | primevue, primevue/* | openvue, openvue/* | | @primevue/core, @primevue/forms, @primevue/icons, @primevue/themes, @primevue/nuxt-module, @primevue/auto-import-resolver, @primevue/metadata, @primevue/mcp | same names under @openvue/* | | @primeuix/themes, @primeuix/themes/* | @openvue/themes, @openvue/themes/* | | @primeuix/* (engine: styled, utils, styles, forms, mcp) | same names under @openuxkit/* |

Left untouched on purpose: primeicons, primeflex, tailwindcss-primeui. The primevue Nuxt config key also stays, because OpenVue's Nuxt module kept it.

openvue and the @openvue/* packages are pinned to the exact version the codemod ships with, so a migration is reproducible. The @openuxkit/* engine packages get a caret range instead, because they version independently of OpenVue. Widen either range yourself afterwards if you prefer.

Try OpenVue without changing any code

If you just want to evaluate OpenVue first, add only the override yourself instead of running the codemod — no source changes needed:

// package.json — npm and bun; yarn uses "resolutions" instead of "overrides"
{
    "overrides": {
        "primevue": "npm:[email protected]"
    }
}
# pnpm-workspace.yaml — pnpm 10.5+. pnpm 11 no longer reads the `pnpm` field
# from package.json, so overrides belong here.
overrides:
    primevue: 'npm:[email protected]'

Once you decide to stay, run npx @openvue/migrate for the real rename.

Requirements

  • Node.js 18+
  • Your project must be on PrimeVue 4.x (the fork point). The tool detects the installed major (from package.json, a catalog:/workspace: protocol, node_modules, or the lockfile) and stops without changing anything if it finds a non-4.x version. Coming from v3 or earlier, apply the PrimeVue v4 migration guide first, then run this tool.