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

fix: lib/helpers/install.ts to better support pnpm and properly respect root argument #64418

Merged
merged 2 commits into from
Apr 15, 2024

Conversation

Ethan-Arrowood
Copy link
Contributor

@Ethan-Arrowood Ethan-Arrowood commented Apr 12, 2024

This fixes and improves the lib/helpers/install.ts file (install()) method to better support pnpm and properly respect the root argument.

I encountered an issue where by running next <command> <project-dir>, and the <command> involved installing missing dependencies (like lint or my upcoming experimental-test), it was not executing pnpm in my <project-dir> because pnpm doesn't have a --cwd flag.

Closes NEXT-3092

@ijjk ijjk added created-by: Next.js team PRs by the Next.js team. type: next labels Apr 12, 2024
@ijjk
Copy link
Member

ijjk commented Apr 12, 2024

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js fix-install-helper-for-pnpm Change
buildDuration 15.9s 16s N/A
buildDurationCached 8.7s 7.6s N/A
nodeModulesSize 199 MB 199 MB N/A
nextStartRea..uration (ms) 433ms 435ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js fix-install-helper-for-pnpm Change
2453-HASH.js gzip 31.4 kB 31.4 kB N/A
3304.HASH.js gzip 181 B 181 B
3f784ff6-HASH.js gzip 53.7 kB 53.7 kB
8299-HASH.js gzip 5.1 kB 5.1 kB N/A
framework-HASH.js gzip 45.2 kB 45.2 kB
main-app-HASH.js gzip 242 B 240 B N/A
main-HASH.js gzip 29.6 kB 29.6 kB N/A
webpack-HASH.js gzip 1.68 kB 1.68 kB N/A
Overall change 99 kB 99 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js fix-install-helper-for-pnpm Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js fix-install-helper-for-pnpm Change
_app-HASH.js gzip 196 B 197 B N/A
_error-HASH.js gzip 184 B 184 B
amp-HASH.js gzip 505 B 505 B
css-HASH.js gzip 324 B 325 B N/A
dynamic-HASH.js gzip 2.5 kB 2.5 kB N/A
edge-ssr-HASH.js gzip 258 B 258 B
head-HASH.js gzip 352 B 352 B
hooks-HASH.js gzip 370 B 371 B N/A
image-HASH.js gzip 4.27 kB 4.27 kB
index-HASH.js gzip 259 B 259 B
link-HASH.js gzip 2.67 kB 2.67 kB N/A
routerDirect..HASH.js gzip 314 B 312 B N/A
script-HASH.js gzip 386 B 386 B
withRouter-HASH.js gzip 309 B 309 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 6.63 kB 6.63 kB
Client Build Manifests
vercel/next.js canary vercel/next.js fix-install-helper-for-pnpm Change
_buildManifest.js gzip 483 B 485 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js fix-install-helper-for-pnpm Change
index.html gzip 529 B 528 B N/A
link.html gzip 542 B 541 B N/A
withRouter.html gzip 525 B 522 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js fix-install-helper-for-pnpm Change
edge-ssr.js gzip 95.6 kB 95.6 kB N/A
page.js gzip 3.05 kB 3.05 kB
Overall change 3.05 kB 3.05 kB
Middleware size
vercel/next.js canary vercel/next.js fix-install-helper-for-pnpm Change
middleware-b..fest.js gzip 624 B 626 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 25.5 kB 25.5 kB N/A
edge-runtime..pack.js gzip 839 B 839 B
Overall change 839 B 839 B
Next Runtimes
vercel/next.js canary vercel/next.js fix-install-helper-for-pnpm Change
app-page-exp...dev.js gzip 171 kB 171 kB
app-page-exp..prod.js gzip 97.5 kB 97.5 kB
app-page-tur..prod.js gzip 99.2 kB 99.2 kB
app-page-tur..prod.js gzip 93.5 kB 93.5 kB
app-page.run...dev.js gzip 145 kB 145 kB
app-page.run..prod.js gzip 92 kB 92 kB
app-route-ex...dev.js gzip 21.5 kB 21.5 kB
app-route-ex..prod.js gzip 15.2 kB 15.2 kB
app-route-tu..prod.js gzip 15.2 kB 15.2 kB
app-route-tu..prod.js gzip 14.9 kB 14.9 kB
app-route.ru...dev.js gzip 21.1 kB 21.1 kB
app-route.ru..prod.js gzip 14.9 kB 14.9 kB
pages-api-tu..prod.js gzip 9.55 kB 9.55 kB
pages-api.ru...dev.js gzip 9.82 kB 9.82 kB
pages-api.ru..prod.js gzip 9.55 kB 9.55 kB
pages-turbo...prod.js gzip 22.5 kB 22.5 kB
pages.runtim...dev.js gzip 23.1 kB 23.1 kB
pages.runtim..prod.js gzip 22.5 kB 22.5 kB
server.runti..prod.js gzip 51.4 kB 51.4 kB
Overall change 948 kB 948 kB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js fix-install-helper-for-pnpm Change
0.pack gzip 1.59 MB 1.58 MB N/A
index.pack gzip 106 kB 107 kB ⚠️ +926 B
Overall change 106 kB 107 kB ⚠️ +926 B
Diff details
Diff for middleware.js

Diff too large to display

Commit: 3e39951

@Ethan-Arrowood Ethan-Arrowood marked this pull request as ready for review April 12, 2024 20:55
@Ethan-Arrowood Ethan-Arrowood enabled auto-merge (squash) April 15, 2024 16:26
@Ethan-Arrowood Ethan-Arrowood disabled auto-merge April 15, 2024 16:38
resolve dependencies as null

Update packages/next/src/lib/helpers/install.ts

Co-authored-by: Zack Tanner <1939140+ztanner@users.noreply.github.com>
@Ethan-Arrowood Ethan-Arrowood force-pushed the fix-install-helper-for-pnpm branch from f7c1e49 to e611b0b Compare April 15, 2024 16:40
@Ethan-Arrowood
Copy link
Contributor Author

I've manually tested these changes locally on my new-experimental-test branch. pnpm is now successfully installing in the correct project directory 😄

@Ethan-Arrowood Ethan-Arrowood enabled auto-merge (squash) April 15, 2024 16:44
@ijjk
Copy link
Member

ijjk commented Apr 15, 2024

Failing test suites

Commit: 3e39951

TURBOPACK=1 pnpm test-start test/e2e/app-dir/not-found/multi-root-layout/index.test.ts (turbopack)

  • not-found-multi-root-layout > should render root not-found for uncaught routes
Expand output

● not-found-multi-root-layout › should render root not-found for uncaught routes

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  16 |   })
  17 |
> 18 |   it('should render root not-found for uncaught routes', async () => {
     |   ^
  19 |     const browser = await next.browser('/404')
  20 |     expect(await browser.elementByCss('h1').text()).toBe('Root Not Found')
  21 |   })

  at it (e2e/app-dir/not-found/multi-root-layout/index.test.ts:18:3)
  at Object.describe (e2e/app-dir/not-found/multi-root-layout/index.test.ts:3:1)

Read more about building and testing Next.js in contributing.md.

@Ethan-Arrowood Ethan-Arrowood merged commit 64da71c into canary Apr 15, 2024
73 of 79 checks passed
@Ethan-Arrowood Ethan-Arrowood deleted the fix-install-helper-for-pnpm branch April 15, 2024 17:26
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 30, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants