-
Notifications
You must be signed in to change notification settings - Fork 27.7k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Improve initial setup with new App Router TypeScript project #64826
Improve initial setup with new App Router TypeScript project #64826
Conversation
Allow CI Workflow Run
Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, thank you. CI just needs fixing (or probably just retrying).
302646a
to
da33856
Compare
Tests Passed |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | unstubbable/next.js improve-app-router-ts-setup | Change | |
---|---|---|---|
buildDuration | 18.2s | 16.3s | N/A |
buildDurationCached | 10.3s | 7.8s | N/A |
nodeModulesSize | 360 MB | 360 MB | |
nextStartRea..uration (ms) | 442ms | 439ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | unstubbable/next.js improve-app-router-ts-setup | Change | |
---|---|---|---|
139-HASH.js gzip | 31.8 kB | 31.8 kB | N/A |
2478adb-HASH.js gzip | 53.5 kB | 53.5 kB | N/A |
4967-HASH.js gzip | 5.1 kB | 5.1 kB | N/A |
6701.HASH.js gzip | 168 B | 168 B | ✓ |
framework-HASH.js gzip | 45.2 kB | 45.2 kB | ✓ |
main-app-HASH.js gzip | 228 B | 226 B | N/A |
main-HASH.js gzip | 31.6 kB | 31.6 kB | N/A |
webpack-HASH.js gzip | 1.65 kB | 1.64 kB | N/A |
Overall change | 45.3 kB | 45.3 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | unstubbable/next.js improve-app-router-ts-setup | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | unstubbable/next.js improve-app-router-ts-setup | Change | |
---|---|---|---|
_app-HASH.js gzip | 194 B | 193 B | N/A |
_error-HASH.js gzip | 192 B | 192 B | ✓ |
amp-HASH.js gzip | 510 B | 510 B | ✓ |
css-HASH.js gzip | 343 B | 342 B | N/A |
dynamic-HASH.js gzip | 2.51 kB | 2.52 kB | N/A |
edge-ssr-HASH.js gzip | 266 B | 265 B | N/A |
head-HASH.js gzip | 365 B | 362 B | N/A |
hooks-HASH.js gzip | 391 B | 390 B | N/A |
image-HASH.js gzip | 4.32 kB | 4.32 kB | N/A |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.69 kB | 2.69 kB | N/A |
routerDirect..HASH.js gzip | 328 B | 328 B | ✓ |
script-HASH.js gzip | 393 B | 395 B | N/A |
withRouter-HASH.js gzip | 323 B | 323 B | ✓ |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 1.73 kB | 1.73 kB | ✓ |
Client Build Manifests
vercel/next.js canary | unstubbable/next.js improve-app-router-ts-setup | Change | |
---|---|---|---|
_buildManifest.js gzip | 484 B | 484 B | ✓ |
Overall change | 484 B | 484 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | unstubbable/next.js improve-app-router-ts-setup | Change | |
---|---|---|---|
index.html gzip | 528 B | 528 B | ✓ |
link.html gzip | 540 B | 541 B | N/A |
withRouter.html gzip | 523 B | 523 B | ✓ |
Overall change | 1.05 kB | 1.05 kB | ✓ |
Edge SSR bundle Size
vercel/next.js canary | unstubbable/next.js improve-app-router-ts-setup | Change | |
---|---|---|---|
edge-ssr.js gzip | 108 kB | 108 kB | N/A |
page.js gzip | 3.04 kB | 3.05 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | unstubbable/next.js improve-app-router-ts-setup | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 623 B | 623 B | ✓ |
middleware-r..fest.js gzip | 155 B | 154 B | N/A |
middleware.js gzip | 27.9 kB | 27.9 kB | N/A |
edge-runtime..pack.js gzip | 839 B | 839 B | ✓ |
Overall change | 1.46 kB | 1.46 kB | ✓ |
Next Runtimes
vercel/next.js canary | unstubbable/next.js improve-app-router-ts-setup | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 171 kB | 171 kB | ✓ |
app-page-exp..prod.js gzip | 98.4 kB | 98.4 kB | ✓ |
app-page-tur..prod.js gzip | 99.9 kB | 99.9 kB | ✓ |
app-page-tur..prod.js gzip | 94.2 kB | 94.2 kB | ✓ |
app-page.run...dev.js gzip | 157 kB | 157 kB | ✓ |
app-page.run..prod.js gzip | 93 kB | 93 kB | ✓ |
app-route-ex...dev.js gzip | 21.4 kB | 21.4 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.3 kB | 21.3 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 | 21.4 kB | 21.4 kB | ✓ |
pages.runtim...dev.js gzip | 22.1 kB | 22.1 kB | ✓ |
pages.runtim..prod.js gzip | 21.4 kB | 21.4 kB | ✓ |
server.runti..prod.js gzip | 65.3 kB | 65.3 kB | ✓ |
Overall change | 975 kB | 975 kB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | unstubbable/next.js improve-app-router-ts-setup | Change | |
---|---|---|---|
0.pack gzip | 1.61 MB | 1.61 MB | |
index.pack gzip | 112 kB | 112 kB | N/A |
Overall change | 1.61 MB | 1.61 MB |
Diff details
Diff for main-HASH.js
Diff too large to display
e7e0a1f
to
2f6421c
Compare
fyi this slightly relates to #61413 as well |
@ryan-nauman How are these related? |
@eps1lon both add tests for
it could be confusing to have them in both places |
Yeah, I need to merge those now, after rebasing. I'm not sure about the history of |
yes. same as i followed the guide in https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md. i have one console with |
2f6421c
to
7d88627
Compare
@eps1lon I've now merged the two unit test files for |
999feae
to
c19acba
Compare
@eps1lon Do you mean "running tests" as in |
e3a6619
to
4964b72
Compare
53f0dc2
to
8ce9c0b
Compare
At least |
8ce9c0b
to
5d9f86e
Compare
Alright, done. Just to make sure we're having the same understanding regarding the statement "which would now change the tsconfig": |
5d9f86e
to
a6e09b6
Compare
Continuation of vercel#64508 This avoids needing to update a freshly created tsconfig.json when first running the `dev` command.
This is the case after starting the `dev` command for the first time, after having created a new project with `create-next-app`.
This should avoid getting unrelated git changes when running `next dev` in any of these projects. Commands used to update the files: ```sh find test -name tsconfig.json -exec dirname {} \; | while read dir; do pnpm next lint "$dir"; done pnpm format ```
a6e09b6
to
a4e8c97
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll babysit CI to get this in. Great work, thank you!
What?
Fixes a couple of issues in the latest Canary regarding the
tsconfig.json
adjustments that are done after creating a new App Router project withcreate-next-app
. Specifically:dev
command for the first time after having created a new project withcreate-next-app
, because in the tsconfig templatesstrict
is enabled per default.Why?
Avoid creating any changes to
tsconfig.json
in a fresh project on first run, and don't confuse the user with wrong logs.How?
I fixed the issues in
writeConfigurationDefaults()
, and added unit tests, as well as adjusted the existing integration tests, to prevent regressions. Additionally, I've created a new project inside of the Next.js monorepo withpnpm create-next-app
and ran thedev
command inside of this project to verify my fixes.