-
Notifications
You must be signed in to change notification settings - Fork 27.6k
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
Stop using baseUrl
in root tsconfig
#64117
Conversation
tsconfig.base.json
Outdated
"e2e-utils": ["./test/lib/e2e-utils"], | ||
"test-data-service/*": ["./test/lib/test-data-service/*"], | ||
"test-log": ["./test/lib/test-log"], | ||
"test/*": ["./test/*"] |
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.
This path is new and mostly what baseUrl: "."
was doing since we have a bunch of import { NextInstance } from 'test/lib/next-modes/base'
. Explicit paths are more helpful anyway since it makes dependency tracking explicit. Otherwise some random test could start importing docs/some/internal/module
.
Might even be better to remove that catch-all in favor of import { NextInstance } from 'e2e-utils'
?
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.
Might even be better to remove that catch-all in favor of import { NextInstance } from 'e2e-utils'?
Did just that.
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | eps1lon/next.js baseurl | Change | |
---|---|---|---|
buildDuration | 13.8s | 13.9s | N/A |
buildDurationCached | 7.4s | 6.3s | N/A |
nodeModulesSize | 199 MB | 199 MB | ✓ |
nextStartRea..uration (ms) | 400ms | 406ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | eps1lon/next.js baseurl | 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.04 kB | 5.04 kB | N/A |
framework-HASH.js gzip | 45.2 kB | 45.2 kB | ✓ |
main-app-HASH.js gzip | 242 B | 242 B | ✓ |
main-HASH.js gzip | 32.2 kB | 32.2 kB | N/A |
webpack-HASH.js gzip | 1.68 kB | 1.68 kB | N/A |
Overall change | 99.3 kB | 99.3 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | eps1lon/next.js baseurl | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | eps1lon/next.js baseurl | 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.21 kB | 4.21 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.57 kB | 6.57 kB | ✓ |
Client Build Manifests
vercel/next.js canary | eps1lon/next.js baseurl | Change | |
---|---|---|---|
_buildManifest.js gzip | 481 B | 484 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | eps1lon/next.js baseurl | Change | |
---|---|---|---|
index.html gzip | 529 B | 528 B | N/A |
link.html gzip | 541 B | 541 B | ✓ |
withRouter.html gzip | 524 B | 522 B | N/A |
Overall change | 541 B | 541 B | ✓ |
Edge SSR bundle Size
vercel/next.js canary | eps1lon/next.js baseurl | Change | |
---|---|---|---|
edge-ssr.js gzip | 95.4 kB | 95.4 kB | N/A |
page.js gzip | 3.06 kB | 3.06 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | eps1lon/next.js baseurl | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 626 B | 626 B | ✓ |
middleware-r..fest.js gzip | 151 B | 151 B | ✓ |
middleware.js gzip | 25.5 kB | 25.5 kB | N/A |
edge-runtime..pack.js gzip | 839 B | 839 B | ✓ |
Overall change | 1.62 kB | 1.62 kB | ✓ |
Next Runtimes
vercel/next.js canary | eps1lon/next.js baseurl | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 170 kB | 170 kB | ✓ |
app-page-exp..prod.js gzip | 97 kB | 97 kB | ✓ |
app-page-tur..prod.js gzip | 98.8 kB | 98.8 kB | ✓ |
app-page-tur..prod.js gzip | 93 kB | 93 kB | ✓ |
app-page.run...dev.js gzip | 144 kB | 144 kB | ✓ |
app-page.run..prod.js gzip | 91.5 kB | 91.5 kB | ✓ |
app-route-ex...dev.js gzip | 21.4 kB | 21.4 kB | ✓ |
app-route-ex..prod.js gzip | 15.1 kB | 15.1 kB | ✓ |
app-route-tu..prod.js gzip | 15.1 kB | 15.1 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.4 kB | 22.4 kB | ✓ |
server.runti..prod.js gzip | 51.1 kB | 51.1 kB | ✓ |
Overall change | 945 kB | 945 kB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | eps1lon/next.js baseurl | Change | |
---|---|---|---|
0.pack gzip | 1.58 MB | 1.58 MB | N/A |
index.pack gzip | 107 kB | 107 kB | |
Overall change | 107 kB | 107 kB |
Diff details
Diff for middleware.js
Diff too large to display
Failing test suitesCommit: 8458c09
Expand output● middleware - development errors › when there is a compilation error after boot › logs the error correctly
Read more about building and testing Next.js in contributing.md. |
`baseUrl` is not supposed to be used for catch-all resolutions. It's not recommended outside of AMD modules: https://www.typescriptlang.org/tsconfig#baseUrl microsoft/TypeScript#54743 has some more context.
The lib path is private-ish whereas `e2e-utils` is a public module
The lib path is private-ish while `next-webdriver` is a public module
The lib path is private-ish whereas `e2e-utils` is a public module Part of #64117 which I split to avoid timeouts in flake detection jobs due to large number of changed tests
The lib path is private-ish whereas `e2e-utils` is a public module Part of #64117 which I split to avoid timeouts in flake detection jobs due to large number of changed tests.
The lib path is private-ish whereas `e2e-utils` is a public module Part of #64117 which I split to avoid timeouts in flake detection jobs due to large number of changed tests.
The lib path is private-ish whereas `e2e-utils` is a public module Part of #64117 which I split to avoid timeouts in flake detection jobs due to large number of changed tests.
The lib path is private-ish whereas `e2e-utils` is a public module Part of #64117 which I split to avoid timeouts in flake detection jobs due to large number of changed tests
Tried to split it in 4 but even those time out:
Since I've never seen a test fail I'm just assuming no new flakiness was introduced and merge it witout CI. |
baseUrl
is not supposed to be used for catch-all resolutions. It's not recommended outside of AMD modules: https://www.typescriptlang.org/tsconfig#baseUrl.microsoft/TypeScript#54743 has some more context.
baseUrl
is not so bad if used in projects where the emit doesn't matter (such is the case for the root tsconfig.json) but I want to avoid having people c&p this option around since it's especially bad for packages that do emit declarations and where we ship those declarations to NPM.It also allowed importing from just any test which is probably not what we want. The main use case was importing utils which already had corresponding exports in public modules:
Test plan
pnpm build && pnpm tsc -p tsconfig.json --noEmit
Closes NEXT-3017