Compare commits

..

11 Commits

Author SHA1 Message Date
Vercel Release Bot
fa3f701e05 Version Packages (#10505)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-14 16:06:33 -05:00
Trek Glowacki
9953fc765f Complete the error message (#10509) 2023-09-14 11:39:53 -05:00
Trek Glowacki
29ea1af971 Skip DataDog reporting if Turbo cache indicates the uploaded files would be identical (#10501) 2023-09-14 10:47:20 -05:00
Zack Tanner
083aad448e [next] missed a prerender for experimentalBypassFor (#10504)
Missed this in https://github.com/vercel/vercel/pull/10497
2023-09-14 01:19:13 +00:00
Vercel Release Bot
314a105ba1 Version Packages (#10493)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-13 17:15:29 -05:00
Ikko Eltociear Ashimine
1abda9ca87 [cli] Fix typo in corepack.ts (#10499)
Co-authored-by: Sean Massa <EndangeredMassa@gmail.com>
2023-09-13 08:26:51 -05:00
Zack Tanner
7a0fed970c [next] provide experimentalBypassFor to prerender from manifest (#10497) 2023-09-12 17:40:49 -05:00
Jimmy Lai
2f461a8b0b next.js: add option to use bundled runtime (#10485)
This PR adds an environment variable that should allow us to test the bundled version for Next.js on Vercel, see https://github.com/vercel/next.js/pull/52997 for reference.

The changes include:
- a new environment variable `VERCEL_NEXT_BUNDLED_SERVER`
- some logic changes that will put app route handlers into their own lambda groups
- extra logic to require early the rendering runtimes (see PR above for details)
2023-09-12 19:45:23 +00:00
Steven
ec894bdf7f [frameworks] Add bun install placeholder (#10492)
<img width="899" alt="image"
src="https://github.com/vercel/vercel/assets/229881/f37a3cfd-bbb9-4c33-88dc-cd19b9855a47">
2023-09-12 11:29:24 -04:00
Andy
009cea6d30 [examples] Use placeholder for API Key (#10490)
The Ionic example has an actual Google Maps API key by default and we'd
like to not have it displayed, so we'll replace it with a placeholder
instead. Considering it's commented out anyways, this will be a no-op.

---------

Co-authored-by: Steven <steven@ceriously.com>
2023-09-12 11:25:02 -04:00
Nathan Rajlich
1bab21026e [remix] Fix usage with bun install (#10489) 2023-09-12 09:55:16 -05:00
33 changed files with 410 additions and 93 deletions

View File

@@ -83,7 +83,7 @@ jobs:
env:
FORCE_COLOR: '1'
- name: Test ${{matrix.packageName}}
run: node utils/gen.js && node_modules/.bin/turbo run test --cache-dir=".turbo" --log-order=stream --scope=${{matrix.packageName}} --no-deps -- ${{ join(matrix.testPaths, ' ') }}
run: node utils/gen.js && node_modules/.bin/turbo run test --summarize --cache-dir=".turbo" --log-order=stream --scope=${{matrix.packageName}} --no-deps -- ${{ join(matrix.testPaths, ' ') }}
shell: bash
env:
JEST_JUNIT_OUTPUT_FILE: ${{github.workspace}}/.junit-reports/${{matrix.scriptName}}-${{matrix.packageName}}-${{matrix.chunkNumber}}-${{ matrix.runner }}.xml
@@ -91,13 +91,19 @@ jobs:
VERCEL_TEST_TOKEN: ${{ secrets.VERCEL_TEST_TOKEN }}
VERCEL_TEST_REGISTRATION_URL: ${{ secrets.VERCEL_TEST_REGISTRATION_URL }}
FORCE_COLOR: '1'
- name: 'Determing Turbo HIT or MISS'
id: turbo-summary
shell: bash
run: |
TURBO_MISS_COUNT=`node utils/determine-turbo-hit-or-miss.js`
echo "MISS COUNT"
echo "$TURBO_MISS_COUNT"
echo "misses=$TURBO_MISS_COUNT" >> $GITHUB_OUTPUT
- name: fetch ssl certificate after tests (linux, os x)
if: matrix.runner != 'windows-latest'
run: echo | openssl s_client -showcerts -servername 'api.vercel.com' -connect 76.76.21.21:443
- name: 'Upload Test Report to Datadog'
if: always()
if: ${{ steps['turbo-summary'].outputs.misses != '0' }}
run: 'npx @datadog/datadog-ci@2.18.1 junit upload --service vercel-cli .junit-reports'
env:
DATADOG_API_KEY: ${{secrets.DATADOG_API_KEY_CLI}}

View File

@@ -29,7 +29,7 @@
<!-- Replace the API key with your own, see:
https://developers.google.com/maps/documentation/javascript/get-api-key -->
<!-- <script async="" defer="" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB8pf6ZdFQj5qw7rc_HSGrhUwQKfIe9ICw"></script> -->
<!-- <script async="" defer="" src="https://maps.googleapis.com/maps/api/js?key=<YOUR_GOOGLE_MAPS_API_KEY>"></script> -->
<noscript>Please enable JavaScript to continue using this application.</noscript>
</body>

View File

@@ -9,7 +9,7 @@
},
"devDependencies": {
"@types/jest": "27.4.1",
"@vercel/frameworks": "2.0.1"
"@vercel/frameworks": "2.0.2"
},
"version": null
}

View File

@@ -1,5 +1,20 @@
# vercel
## 32.2.3
### Patch Changes
- Updated dependencies [[`083aad448`](https://github.com/vercel/vercel/commit/083aad448e45edae296da3201eec9f890a01d22d)]:
- @vercel/next@4.0.5
## 32.2.2
### Patch Changes
- Updated dependencies [[`7a0fed970`](https://github.com/vercel/vercel/commit/7a0fed970c39cb8f4df70544ded3284d3538b06a), [`2f461a8b0`](https://github.com/vercel/vercel/commit/2f461a8b0bcbdd05da0516395c2905c2d0242682), [`1bab21026`](https://github.com/vercel/vercel/commit/1bab21026ec0bb8a4a8fbeac3d6e4a197f1030fd)]:
- @vercel/next@4.0.4
- @vercel/remix-builder@2.0.5
## 32.2.1
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "vercel",
"version": "32.2.1",
"version": "32.2.3",
"preferGlobal": true,
"license": "Apache-2.0",
"description": "The command-line interface for Vercel",
@@ -34,11 +34,11 @@
"@vercel/build-utils": "7.2.0",
"@vercel/go": "3.0.1",
"@vercel/hydrogen": "1.0.1",
"@vercel/next": "4.0.3",
"@vercel/next": "4.0.5",
"@vercel/node": "3.0.5",
"@vercel/python": "4.0.1",
"@vercel/redwood": "2.0.2",
"@vercel/remix-builder": "2.0.4",
"@vercel/remix-builder": "2.0.5",
"@vercel/ruby": "2.0.2",
"@vercel/static-build": "2.0.5"
},
@@ -89,8 +89,8 @@
"@vercel-internals/types": "1.0.10",
"@vercel/client": "13.0.3",
"@vercel/error-utils": "2.0.1",
"@vercel/frameworks": "2.0.1",
"@vercel/fs-detectors": "5.0.2",
"@vercel/frameworks": "2.0.2",
"@vercel/fs-detectors": "5.0.3",
"@vercel/fun": "1.1.0",
"@vercel/ncc": "0.24.0",
"@vercel/routing-utils": "3.0.0",

View File

@@ -41,7 +41,7 @@ export async function initCorepack({
const pkgManagerName = pkg.packageManager.split('@')[0];
// We must explicitly call `corepack enable npm` since `corepack enable`
// doesn't work with npm. See https://github.com/nodejs/corepack/pull/24
// Also, `corepack enable` is too broad and will change the verison of
// Also, `corepack enable` is too broad and will change the version of
// yarn & pnpm even though those versions are not specified by the user.
// See https://github.com/nodejs/corepack#known-good-releases
// Finally, we use `--install-directory` so we can cache the result to

View File

@@ -1,5 +1,11 @@
# @vercel/frameworks
## 2.0.2
### Patch Changes
- Add `bun install` placeholder ([#10492](https://github.com/vercel/vercel/pull/10492))
## 2.0.1
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/frameworks",
"version": "2.0.1",
"version": "2.0.2",
"main": "./dist/frameworks.js",
"types": "./dist/frameworks.d.ts",
"files": [

View File

@@ -42,7 +42,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `blitz build`',
@@ -82,7 +83,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `next build`',
@@ -125,7 +127,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `gatsby build`',
@@ -214,7 +217,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
value: 'remix build',
@@ -252,7 +256,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install` or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
value: 'astro build',
@@ -299,7 +304,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `hexo generate`',
@@ -334,7 +340,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `npx @11ty/eleventy`',
@@ -371,7 +378,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `docusaurus build`',
@@ -457,7 +465,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `docusaurus-build`',
@@ -508,7 +517,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `preact build`',
@@ -555,7 +565,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `solid-start build`',
@@ -591,7 +602,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `dojo build`',
@@ -651,7 +663,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `ember build`',
@@ -696,7 +709,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `vue-cli-service build`',
@@ -749,7 +763,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `ng build && scully`',
@@ -784,7 +799,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `ng build`',
@@ -827,7 +843,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `ng build`',
@@ -885,7 +902,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `polymer build`',
@@ -944,7 +962,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `rollup -c`',
@@ -994,7 +1013,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `svelte-kit build`',
@@ -1032,7 +1052,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: 'vite build',
@@ -1066,7 +1087,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `react-scripts build`',
@@ -1129,7 +1151,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `react-scripts build`',
@@ -1188,7 +1211,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `gridsome build`',
@@ -1223,7 +1247,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `umi build`',
@@ -1267,7 +1292,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `sapper export`',
@@ -1302,7 +1328,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `saber build`',
@@ -1351,7 +1378,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `stencil build`',
@@ -1420,7 +1448,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `nuxt generate`',
@@ -1476,7 +1505,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
value: 'yarn rw deploy vercel',
@@ -1606,7 +1636,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `brunch build --production`',
@@ -1717,7 +1748,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
value: 'shopify hydrogen build',
@@ -1753,7 +1785,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `vite build`',
@@ -1787,7 +1820,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `vitepress build docs`',
@@ -1819,7 +1853,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `vuepress build src`',
@@ -1852,7 +1887,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `parcel build`',
@@ -1909,7 +1945,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run build` or `sanity build`',
@@ -1953,7 +1990,8 @@ export const frameworks = [
},
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
value: 'storybook build',
@@ -1975,7 +2013,8 @@ export const frameworks = [
description: 'No framework or an unoptimized framework.',
settings: {
installCommand: {
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
placeholder:
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
},
buildCommand: {
placeholder: '`npm run vercel-build` or `npm run build`',

View File

@@ -1,5 +1,12 @@
# @vercel/fs-detectors
## 5.0.3
### Patch Changes
- Updated dependencies [[`ec894bdf7`](https://github.com/vercel/vercel/commit/ec894bdf7f167debded37183f11360756f577f14)]:
- @vercel/frameworks@2.0.2
## 5.0.2
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/fs-detectors",
"version": "5.0.2",
"version": "5.0.3",
"description": "Vercel filesystem detectors",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -21,7 +21,7 @@
},
"dependencies": {
"@vercel/error-utils": "2.0.1",
"@vercel/frameworks": "2.0.1",
"@vercel/frameworks": "2.0.2",
"@vercel/routing-utils": "3.0.0",
"glob": "8.0.3",
"js-yaml": "4.1.0",

View File

@@ -1,5 +1,19 @@
# @vercel/next
## 4.0.5
### Patch Changes
- missed a prerender for experimentalBypassFor ([#10504](https://github.com/vercel/vercel/pull/10504))
## 4.0.4
### Patch Changes
- provide `experimentalBypassFor` to Prerender from manifest ([#10497](https://github.com/vercel/vercel/pull/10497))
- next.js: move app route handlers in their own lambda grouping, add flag to use bundled runtime ([#10485](https://github.com/vercel/vercel/pull/10485))
## 4.0.3
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/next",
"version": "4.0.3",
"version": "4.0.5",
"license": "Apache-2.0",
"main": "./dist/index",
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/next-js",

View File

@@ -65,6 +65,12 @@ const NEXT_DATA_MIDDLEWARE_RESOLVING_VERSION = 'v12.1.7-canary.33';
const EMPTY_ALLOW_QUERY_FOR_PRERENDERED_VERSION = 'v12.2.0';
const CORRECTED_MANIFESTS_VERSION = 'v12.2.0';
// related PR: https://github.com/vercel/next.js/pull/52997
const BUNDLED_SERVER_NEXT_VERSION = '13.4.20-canary.26';
const BUNDLED_SERVER_NEXT_PATH =
'next/dist/compiled/next-server/server.runtime.prod.js';
export async function serverBuild({
dynamicPages,
pagesDir,
@@ -305,16 +311,32 @@ export async function serverBuild({
let nextServerBuildTrace;
let instrumentationHookBuildTrace;
const useBundledServer =
semver.gte(nextVersion, BUNDLED_SERVER_NEXT_VERSION) &&
process.env.VERCEL_NEXT_BUNDLED_SERVER;
if (useBundledServer) {
debug('Using bundled Next.js server');
}
const nextServerFile = resolveFrom(
projectDir,
`${getNextServerPath(nextVersion)}/next-server.js`
useBundledServer
? BUNDLED_SERVER_NEXT_PATH
: `${getNextServerPath(nextVersion)}/next-server.js`
);
try {
// leverage next-server trace from build if available
nextServerBuildTrace = JSON.parse(
await fs.readFile(
path.join(entryPath, outputDirectory, 'next-server.js.nft.json'),
path.join(
entryPath,
outputDirectory,
useBundledServer
? 'next-minimal-server.js.nft.json'
: 'next-server.js.nft.json'
),
'utf8'
)
);
@@ -407,6 +429,7 @@ export async function serverBuild({
const apiPages: string[] = [];
const nonApiPages: string[] = [];
const appRouterPages: string[] = [];
const appRouteHandlers: string[] = [];
lambdaPageKeys.forEach(page => {
if (
@@ -428,7 +451,11 @@ export async function serverBuild({
}
if (lambdaAppPaths[page]) {
appRouterPages.push(page);
if (lambdaAppPaths[page].fsPath.endsWith('route.js')) {
appRouteHandlers.push(page);
} else {
appRouterPages.push(page);
}
} else if (pageMatchesApi(page)) {
apiPages.push(page);
} else {
@@ -596,7 +623,9 @@ export async function serverBuild({
)
.replace(
'__NEXT_SERVER_PATH__',
`${getNextServerPath(nextVersion)}/next-server.js`
useBundledServer
? BUNDLED_SERVER_NEXT_PATH
: `${getNextServerPath(nextVersion)}/next-server.js`
);
const appLauncher = launcher.replace(
@@ -632,6 +661,7 @@ export async function serverBuild({
const mergedPageKeys = [
...nonApiPages,
...appRouterPages,
...appRouteHandlers,
...apiPages,
...internalPages,
];
@@ -793,6 +823,10 @@ export async function serverBuild({
pageExtensions,
});
for (const group of pageLambdaGroups) {
group.isPages = true;
}
const appRouterLambdaGroups = await getPageLambdaGroups({
entryPath: projectDir,
config,
@@ -809,6 +843,22 @@ export async function serverBuild({
pageExtensions,
});
const appRouteHandlersLambdaGroups = await getPageLambdaGroups({
entryPath: projectDir,
config,
functionsConfigManifest,
pages: appRouteHandlers,
prerenderRoutes,
pageTraces,
compressedPages,
tracedPseudoLayer: tracedPseudoLayer.pseudoLayer,
initialPseudoLayer,
lambdaCompressedByteLimit,
initialPseudoLayerUncompressed: uncompressedInitialSize,
internalPages,
pageExtensions,
});
for (const group of appRouterLambdaGroups) {
if (!group.isPrerenders) {
group.isStreaming = true;
@@ -816,6 +866,14 @@ export async function serverBuild({
group.isAppRouter = true;
}
for (const group of appRouteHandlersLambdaGroups) {
if (!group.isPrerenders) {
group.isStreaming = true;
}
group.isAppRouter = true;
group.isAppRouteHandler = true;
}
const apiLambdaGroups = await getPageLambdaGroups({
entryPath: projectDir,
config,
@@ -857,6 +915,14 @@ export async function serverBuild({
pseudoLayerBytes: group.pseudoLayerBytes,
uncompressedLayerBytes: group.pseudoLayerUncompressedBytes,
})),
appRouteHandlersLambdaGroups: appRouteHandlersLambdaGroups.map(
group => ({
pages: group.pages,
isPrerender: group.isPrerenders,
pseudoLayerBytes: group.pseudoLayerBytes,
uncompressedLayerBytes: group.pseudoLayerUncompressedBytes,
})
),
nextServerLayerSize: initialPseudoLayer.pseudoLayerBytes,
},
null,
@@ -867,6 +933,7 @@ export async function serverBuild({
...pageLambdaGroups,
...appRouterLambdaGroups,
...apiLambdaGroups,
...appRouteHandlersLambdaGroups,
];
await detectLambdaLimitExceeding(

View File

@@ -29,6 +29,7 @@ const nextServer = new NextServer({
minimalMode: true,
customServer: false,
});
const requestHandler = nextServer.getRequestHandler();
module.exports = async (req: IncomingMessage, res: ServerResponse) => {

View File

@@ -856,6 +856,7 @@ export type NextPrerenderedRoutes = {
srcRoute: string | null;
initialStatus?: number;
initialHeaders?: Record<string, string>;
experimentalBypassFor?: HasField;
};
};
@@ -864,6 +865,7 @@ export type NextPrerenderedRoutes = {
routeRegex: string;
dataRoute: string | null;
dataRouteRegex: string | null;
experimentalBypassFor?: HasField;
};
};
@@ -873,6 +875,7 @@ export type NextPrerenderedRoutes = {
routeRegex: string;
dataRoute: string | null;
dataRouteRegex: string | null;
experimentalBypassFor?: HasField;
};
};
@@ -881,6 +884,7 @@ export type NextPrerenderedRoutes = {
routeRegex: string;
dataRoute: string | null;
dataRouteRegex: string | null;
experimentalBypassFor?: HasField;
};
};
@@ -1084,6 +1088,7 @@ export async function getPrerenderManifest(
dataRoute: string | null;
initialStatus?: number;
initialHeaders?: Record<string, string>;
experimentalBypassFor?: HasField;
};
};
dynamicRoutes: {
@@ -1092,6 +1097,7 @@ export async function getPrerenderManifest(
fallback: string | false;
dataRoute: string | null;
dataRouteRegex: string | null;
experimentalBypassFor?: HasField;
};
};
preview: {
@@ -1177,10 +1183,12 @@ export async function getPrerenderManifest(
let initialStatus: undefined | number;
let initialHeaders: undefined | Record<string, string>;
let experimentalBypassFor: undefined | HasField;
if (manifest.version === 4) {
initialStatus = manifest.routes[route].initialStatus;
initialHeaders = manifest.routes[route].initialHeaders;
experimentalBypassFor = manifest.routes[route].experimentalBypassFor;
}
ret.staticRoutes[route] = {
@@ -1192,15 +1200,23 @@ export async function getPrerenderManifest(
srcRoute,
initialStatus,
initialHeaders,
experimentalBypassFor,
};
});
lazyRoutes.forEach(lazyRoute => {
const { routeRegex, fallback, dataRoute, dataRouteRegex } =
manifest.dynamicRoutes[lazyRoute];
let experimentalBypassFor: undefined | HasField;
if (manifest.version === 4) {
experimentalBypassFor =
manifest.dynamicRoutes[lazyRoute].experimentalBypassFor;
}
if (typeof fallback === 'string') {
ret.fallbackRoutes[lazyRoute] = {
experimentalBypassFor,
routeRegex,
fallback,
dataRoute,
@@ -1208,6 +1224,7 @@ export async function getPrerenderManifest(
};
} else if (fallback === null) {
ret.blockingFallbackRoutes[lazyRoute] = {
experimentalBypassFor,
routeRegex,
dataRoute,
dataRouteRegex,
@@ -1216,6 +1233,7 @@ export async function getPrerenderManifest(
// Fallback behavior is disabled, all routes would've been provided
// in the top-level `routes` key (`staticRoutes`).
ret.omittedRoutes[lazyRoute] = {
experimentalBypassFor,
routeRegex,
dataRoute,
dataRouteRegex,
@@ -1391,8 +1409,10 @@ export type LambdaGroup = {
memory?: number;
maxDuration?: number;
isAppRouter?: boolean;
isAppRouteHandler?: boolean;
isStreaming?: boolean;
isPrerenders?: boolean;
isPages?: boolean;
isApiLambda: boolean;
pseudoLayer: PseudoLayer;
pseudoLayerBytes: number;
@@ -1907,6 +1927,7 @@ export const onPrerenderRoute =
let dataRoute: string | null;
let initialStatus: number | undefined;
let initialHeaders: Record<string, string> | undefined;
let experimentalBypassFor: HasField | undefined;
if (isFallback || isBlocking) {
const pr = isFallback
@@ -1923,10 +1944,13 @@ export const onPrerenderRoute =
}
srcRoute = null;
dataRoute = pr.dataRoute;
experimentalBypassFor = pr.experimentalBypassFor;
} else if (isOmitted) {
initialRevalidate = false;
srcRoute = routeKey;
dataRoute = prerenderManifest.omittedRoutes[routeKey].dataRoute;
experimentalBypassFor =
prerenderManifest.omittedRoutes[routeKey].experimentalBypassFor;
} else {
const pr = prerenderManifest.staticRoutes[routeKey];
({
@@ -1935,6 +1959,7 @@ export const onPrerenderRoute =
dataRoute,
initialHeaders,
initialStatus,
experimentalBypassFor,
} = pr);
}
@@ -2175,6 +2200,7 @@ export const onPrerenderRoute =
fallback: htmlFsRef,
group: prerenderGroup,
bypassToken: prerenderManifest.bypassToken,
experimentalBypassFor,
initialStatus,
initialHeaders,
sourcePath,
@@ -2203,6 +2229,7 @@ export const onPrerenderRoute =
fallback: jsonFsRef,
group: prerenderGroup,
bypassToken: prerenderManifest.bypassToken,
experimentalBypassFor,
...(isNotFound
? {

View File

@@ -0,0 +1 @@
.vercel

View File

@@ -0,0 +1,5 @@
export async function GET() {
return new Response('hello world from app route')
}
export const dynamic = 'force-dynamic'

View File

@@ -0,0 +1,5 @@
export default function Page() {
return <p>hello world from app router</p>
}
export const dynamic = 'force-dynamic'

View File

@@ -0,0 +1,10 @@
export default function Layout({children}) {
return <html>
<head>
<title>My page</title>
</head>
<body>
{children}
</body>
</html>
}

View File

@@ -0,0 +1,8 @@
const path = require('path');
const { deployAndTest } = require('../../utils');
describe(`${__dirname.split(path.sep).pop()}`, () => {
it('should deploy and pass probe checks', async () => {
await deployAndTest(__dirname);
});
});

View File

@@ -0,0 +1,15 @@
{
"name": "bundled-server",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
},
"dependencies": {
"next": "canary",
"react": "latest",
"react-dom": "latest"
}
}

View File

@@ -0,0 +1,5 @@
export default async (req, res) => {
res.status(200).json({
payload: `hello world from api`
});
};

View File

@@ -0,0 +1,7 @@
export default function Home(props) {
return `hello world from pages`;
}
export async function getServerSideProps() {
return {};
}

View File

@@ -0,0 +1,24 @@
{
"probes": [
{
"path": "/app",
"status": 200,
"mustContain": "hello world from app router"
},
{
"path": "/app-route",
"status": 200,
"mustContain": "hello world from app route"
},
{
"path": "/api/hello",
"status": 200,
"mustContain": "hello world from api"
},
{
"path": "/",
"status": 200,
"mustContain": "hello world from pages"
}
]
}

View File

@@ -0,0 +1,7 @@
{
"build": {
"env": {
"VERCEL_NEXT_BUNDLED_SERVER": "1"
}
}
}

View File

@@ -72,7 +72,7 @@ if (parseInt(process.versions.node.split('.')[0], 10) >= 16) {
)
).toBeFalsy();
expect(lambdas.size).toBe(4);
expect(lambdas.size).toBe(5);
// RSC, root-level page.js
expect(buildResult.output['index']).toBeDefined();

View File

@@ -1,5 +1,11 @@
# @vercel/remix-builder
## 2.0.5
### Patch Changes
- Fix usage with `bun install` ([#10489](https://github.com/vercel/vercel/pull/10489))
## 2.0.4
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/remix-builder",
"version": "2.0.4",
"version": "2.0.5",
"license": "Apache-2.0",
"main": "./dist/index.js",
"homepage": "https://vercel.com/docs",

View File

@@ -278,29 +278,41 @@ export function addDependencies(
}
const args: string[] = [];
if (cliType === 'npm' || cliType === 'pnpm') {
args.push('install');
if (opts.saveDev) {
args.push('--save-dev');
}
} else {
// 'yarn'
args.push('add');
if (opts.saveDev) {
args.push('--dev');
}
const yarnVersion = execSync('yarn -v', { encoding: 'utf8' }).trim();
const isYarnV1 = semver.satisfies(yarnVersion, '1');
if (isYarnV1) {
// Ignoring workspace check is only needed on Yarn v1
args.push('--ignore-workspace-root-check');
}
}
switch (cliType) {
case 'npm':
case 'pnpm':
args.push('install');
if (opts.saveDev) {
args.push('--save-dev');
}
// Don't fail if pnpm is being run at the workspace root
if (cliType === 'pnpm' && opts.cwd) {
if (existsSync(join(opts.cwd, 'pnpm-workspace.yaml'))) {
args.push('--workspace-root');
// Don't fail if pnpm is being run at the workspace root
if (cliType === 'pnpm' && opts.cwd) {
if (existsSync(join(opts.cwd, 'pnpm-workspace.yaml'))) {
args.push('--workspace-root');
}
}
break;
case 'bun':
case 'yarn':
args.push('add');
if (opts.saveDev) {
args.push('--dev');
}
if (cliType === 'yarn') {
const yarnVersion = execSync('yarn -v', { encoding: 'utf8' }).trim();
const isYarnV1 = semver.satisfies(yarnVersion, '1');
if (isYarnV1) {
// Ignoring workspace check is only needed on Yarn v1
args.push('--ignore-workspace-root-check');
}
}
break;
default: {
const n: never = cliType;
throw new Error(`Unexpected package manager: ${n}`);
}
}

View File

@@ -34,8 +34,8 @@
"@types/semver": "7.3.13",
"@vercel/build-utils": "7.2.0",
"@vercel/error-utils": "2.0.1",
"@vercel/frameworks": "2.0.1",
"@vercel/fs-detectors": "5.0.2",
"@vercel/frameworks": "2.0.2",
"@vercel/fs-detectors": "5.0.3",
"@vercel/ncc": "0.24.0",
"@vercel/routing-utils": "3.0.0",
"@vercel/static-config": "3.0.0",

16
pnpm-lock.yaml generated
View File

@@ -132,7 +132,7 @@ importers:
specifier: 27.4.1
version: 27.4.1
'@vercel/frameworks':
specifier: 2.0.1
specifier: 2.0.2
version: link:../packages/frameworks
internals/constants:
@@ -322,7 +322,7 @@ importers:
specifier: 1.0.1
version: link:../hydrogen
'@vercel/next':
specifier: 4.0.3
specifier: 4.0.5
version: link:../next
'@vercel/node':
specifier: 3.0.5
@@ -334,7 +334,7 @@ importers:
specifier: 2.0.2
version: link:../redwood
'@vercel/remix-builder':
specifier: 2.0.4
specifier: 2.0.5
version: link:../remix
'@vercel/ruby':
specifier: 2.0.2
@@ -482,10 +482,10 @@ importers:
specifier: 2.0.1
version: link:../error-utils
'@vercel/frameworks':
specifier: 2.0.1
specifier: 2.0.2
version: link:../frameworks
'@vercel/fs-detectors':
specifier: 5.0.2
specifier: 5.0.3
version: link:../fs-detectors
'@vercel/fun':
specifier: 1.1.0
@@ -898,7 +898,7 @@ importers:
specifier: 2.0.1
version: link:../error-utils
'@vercel/frameworks':
specifier: 2.0.1
specifier: 2.0.2
version: link:../frameworks
'@vercel/routing-utils':
specifier: 3.0.0
@@ -1523,10 +1523,10 @@ importers:
specifier: 2.0.1
version: link:../error-utils
'@vercel/frameworks':
specifier: 2.0.1
specifier: 2.0.2
version: link:../frameworks
'@vercel/fs-detectors':
specifier: 5.0.2
specifier: 5.0.3
version: link:../fs-detectors
'@vercel/ncc':
specifier: 0.24.0

30
utils/determine-turbo-hit-or-miss.js vendored Normal file
View File

@@ -0,0 +1,30 @@
const fs = require('fs-extra');
const path = require('path');
async function main() {
const rootDir = path.join(__dirname, '..');
const turboRunDir = path.join(rootDir, '.turbo/runs');
const turboRunFiles = await fs.readdir(turboRunDir);
turboRunFiles.forEach(async fileName => {
const runFile = path.join(turboRunDir, fileName);
const runData = await fs.readJson(runFile);
const tasksReports = runData.tasks || [];
const missCount = tasksReports.reduce((total, taskData) => {
if (taskData.cache.status === 'MISS') {
return total + 1;
}
return total;
}, 0);
console.log(missCount);
return process.exit(missCount);
});
}
main().catch(err => {
console.log('error determining Turbo HIT or MISS', err);
process.exit(1);
});