Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check for pnpm v10 pnpm.onlyBuiltDependencies for certain packages #620

Open
karlhorky opened this issue Feb 9, 2025 · 0 comments
Open

Comments

@karlhorky
Copy link
Member

karlhorky commented Feb 9, 2025

Alternative to upleveled/eslint-config-upleveled#488

Currently, some lifecycle scripts (build scripts) of packages like sharp and bcrypt are not allowed in pnpm v10, and result in errors like the following Ignored build scripts error:

$ pnpm install
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +814
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 814, reused 0, downloaded 69, added 66

...

Ignored build scripts: sharp. Run "pnpm approve-builds" to pick which dependencies should be allowed to run scripts.

Done in 13.8s

A student not including sharp in their Next.js project will mostly appear to work properly, but pages will most likely be slow to load, due to Next.js falling back to slower non-native image optimization.

To avoid this, add a Preflight check to:

  1. Check package.json for packages which should be built, like sharp and bcrypt
  2. Make sure that students have configured the pnpm.onlyBuiltDependencies correctly (like the example below) for such packages
{
  "pnpm": {
    "overrides": {
      "@emotion/react": "11.14.0",
      "@emotion/styled": "11.14.0",
      "@tailwindcss/node": "4.0.1",
      "@tailwindcss/oxide": "4.0.1",
      "@types/react": "19.0.8",
      "@types/react-dom": "19.0.3"
    },
    "patchedDependencies": {
      "next": "patches/next.patch"
    },
    "onlyBuiltDependencies": [
      "sharp"
    ]
  }
}
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

No branches or pull requests

1 participant