mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-12 21:07:46 +00:00
Compare commits
11 Commits
@vercel/py
...
@vercel/ne
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa3f701e05 | ||
|
|
9953fc765f | ||
|
|
29ea1af971 | ||
|
|
083aad448e | ||
|
|
314a105ba1 | ||
|
|
1abda9ca87 | ||
|
|
7a0fed970c | ||
|
|
2f461a8b0b | ||
|
|
ec894bdf7f | ||
|
|
009cea6d30 | ||
|
|
1bab21026e |
14
.github/workflows/test.yml
vendored
14
.github/workflows/test.yml
vendored
@@ -83,7 +83,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
FORCE_COLOR: '1'
|
FORCE_COLOR: '1'
|
||||||
- name: Test ${{matrix.packageName}}
|
- 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
|
shell: bash
|
||||||
env:
|
env:
|
||||||
JEST_JUNIT_OUTPUT_FILE: ${{github.workspace}}/.junit-reports/${{matrix.scriptName}}-${{matrix.packageName}}-${{matrix.chunkNumber}}-${{ matrix.runner }}.xml
|
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_TOKEN: ${{ secrets.VERCEL_TEST_TOKEN }}
|
||||||
VERCEL_TEST_REGISTRATION_URL: ${{ secrets.VERCEL_TEST_REGISTRATION_URL }}
|
VERCEL_TEST_REGISTRATION_URL: ${{ secrets.VERCEL_TEST_REGISTRATION_URL }}
|
||||||
FORCE_COLOR: '1'
|
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)
|
- name: fetch ssl certificate after tests (linux, os x)
|
||||||
if: matrix.runner != 'windows-latest'
|
if: matrix.runner != 'windows-latest'
|
||||||
run: echo | openssl s_client -showcerts -servername 'api.vercel.com' -connect 76.76.21.21:443
|
run: echo | openssl s_client -showcerts -servername 'api.vercel.com' -connect 76.76.21.21:443
|
||||||
|
|
||||||
- name: 'Upload Test Report to Datadog'
|
- 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'
|
run: 'npx @datadog/datadog-ci@2.18.1 junit upload --service vercel-cli .junit-reports'
|
||||||
env:
|
env:
|
||||||
DATADOG_API_KEY: ${{secrets.DATADOG_API_KEY_CLI}}
|
DATADOG_API_KEY: ${{secrets.DATADOG_API_KEY_CLI}}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
<!-- Replace the API key with your own, see:
|
<!-- Replace the API key with your own, see:
|
||||||
https://developers.google.com/maps/documentation/javascript/get-api-key -->
|
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>
|
<noscript>Please enable JavaScript to continue using this application.</noscript>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
2
examples/package.json
vendored
2
examples/package.json
vendored
@@ -9,7 +9,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "27.4.1",
|
"@types/jest": "27.4.1",
|
||||||
"@vercel/frameworks": "2.0.1"
|
"@vercel/frameworks": "2.0.2"
|
||||||
},
|
},
|
||||||
"version": null
|
"version": null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,20 @@
|
|||||||
# vercel
|
# 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
|
## 32.2.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "vercel",
|
"name": "vercel",
|
||||||
"version": "32.2.1",
|
"version": "32.2.3",
|
||||||
"preferGlobal": true,
|
"preferGlobal": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"description": "The command-line interface for Vercel",
|
"description": "The command-line interface for Vercel",
|
||||||
@@ -34,11 +34,11 @@
|
|||||||
"@vercel/build-utils": "7.2.0",
|
"@vercel/build-utils": "7.2.0",
|
||||||
"@vercel/go": "3.0.1",
|
"@vercel/go": "3.0.1",
|
||||||
"@vercel/hydrogen": "1.0.1",
|
"@vercel/hydrogen": "1.0.1",
|
||||||
"@vercel/next": "4.0.3",
|
"@vercel/next": "4.0.5",
|
||||||
"@vercel/node": "3.0.5",
|
"@vercel/node": "3.0.5",
|
||||||
"@vercel/python": "4.0.1",
|
"@vercel/python": "4.0.1",
|
||||||
"@vercel/redwood": "2.0.2",
|
"@vercel/redwood": "2.0.2",
|
||||||
"@vercel/remix-builder": "2.0.4",
|
"@vercel/remix-builder": "2.0.5",
|
||||||
"@vercel/ruby": "2.0.2",
|
"@vercel/ruby": "2.0.2",
|
||||||
"@vercel/static-build": "2.0.5"
|
"@vercel/static-build": "2.0.5"
|
||||||
},
|
},
|
||||||
@@ -89,8 +89,8 @@
|
|||||||
"@vercel-internals/types": "1.0.10",
|
"@vercel-internals/types": "1.0.10",
|
||||||
"@vercel/client": "13.0.3",
|
"@vercel/client": "13.0.3",
|
||||||
"@vercel/error-utils": "2.0.1",
|
"@vercel/error-utils": "2.0.1",
|
||||||
"@vercel/frameworks": "2.0.1",
|
"@vercel/frameworks": "2.0.2",
|
||||||
"@vercel/fs-detectors": "5.0.2",
|
"@vercel/fs-detectors": "5.0.3",
|
||||||
"@vercel/fun": "1.1.0",
|
"@vercel/fun": "1.1.0",
|
||||||
"@vercel/ncc": "0.24.0",
|
"@vercel/ncc": "0.24.0",
|
||||||
"@vercel/routing-utils": "3.0.0",
|
"@vercel/routing-utils": "3.0.0",
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ export async function initCorepack({
|
|||||||
const pkgManagerName = pkg.packageManager.split('@')[0];
|
const pkgManagerName = pkg.packageManager.split('@')[0];
|
||||||
// We must explicitly call `corepack enable npm` since `corepack enable`
|
// We must explicitly call `corepack enable npm` since `corepack enable`
|
||||||
// doesn't work with npm. See https://github.com/nodejs/corepack/pull/24
|
// 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.
|
// yarn & pnpm even though those versions are not specified by the user.
|
||||||
// See https://github.com/nodejs/corepack#known-good-releases
|
// See https://github.com/nodejs/corepack#known-good-releases
|
||||||
// Finally, we use `--install-directory` so we can cache the result to
|
// Finally, we use `--install-directory` so we can cache the result to
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
# @vercel/frameworks
|
# @vercel/frameworks
|
||||||
|
|
||||||
|
## 2.0.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Add `bun install` placeholder ([#10492](https://github.com/vercel/vercel/pull/10492))
|
||||||
|
|
||||||
## 2.0.1
|
## 2.0.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vercel/frameworks",
|
"name": "@vercel/frameworks",
|
||||||
"version": "2.0.1",
|
"version": "2.0.2",
|
||||||
"main": "./dist/frameworks.js",
|
"main": "./dist/frameworks.js",
|
||||||
"types": "./dist/frameworks.d.ts",
|
"types": "./dist/frameworks.d.ts",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -42,7 +42,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `blitz build`',
|
placeholder: '`npm run build` or `blitz build`',
|
||||||
@@ -82,7 +83,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `next build`',
|
placeholder: '`npm run build` or `next build`',
|
||||||
@@ -125,7 +127,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `gatsby build`',
|
placeholder: '`npm run build` or `gatsby build`',
|
||||||
@@ -214,7 +217,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
value: 'remix build',
|
value: 'remix build',
|
||||||
@@ -252,7 +256,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install` or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
value: 'astro build',
|
value: 'astro build',
|
||||||
@@ -299,7 +304,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `hexo generate`',
|
placeholder: '`npm run build` or `hexo generate`',
|
||||||
@@ -334,7 +340,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `npx @11ty/eleventy`',
|
placeholder: '`npm run build` or `npx @11ty/eleventy`',
|
||||||
@@ -371,7 +378,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `docusaurus build`',
|
placeholder: '`npm run build` or `docusaurus build`',
|
||||||
@@ -457,7 +465,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `docusaurus-build`',
|
placeholder: '`npm run build` or `docusaurus-build`',
|
||||||
@@ -508,7 +517,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `preact build`',
|
placeholder: '`npm run build` or `preact build`',
|
||||||
@@ -555,7 +565,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `solid-start build`',
|
placeholder: '`npm run build` or `solid-start build`',
|
||||||
@@ -591,7 +602,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `dojo build`',
|
placeholder: '`npm run build` or `dojo build`',
|
||||||
@@ -651,7 +663,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `ember build`',
|
placeholder: '`npm run build` or `ember build`',
|
||||||
@@ -696,7 +709,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `vue-cli-service build`',
|
placeholder: '`npm run build` or `vue-cli-service build`',
|
||||||
@@ -749,7 +763,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `ng build && scully`',
|
placeholder: '`npm run build` or `ng build && scully`',
|
||||||
@@ -784,7 +799,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `ng build`',
|
placeholder: '`npm run build` or `ng build`',
|
||||||
@@ -827,7 +843,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `ng build`',
|
placeholder: '`npm run build` or `ng build`',
|
||||||
@@ -885,7 +902,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `polymer build`',
|
placeholder: '`npm run build` or `polymer build`',
|
||||||
@@ -944,7 +962,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `rollup -c`',
|
placeholder: '`npm run build` or `rollup -c`',
|
||||||
@@ -994,7 +1013,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `svelte-kit build`',
|
placeholder: '`npm run build` or `svelte-kit build`',
|
||||||
@@ -1032,7 +1052,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: 'vite build',
|
placeholder: 'vite build',
|
||||||
@@ -1066,7 +1087,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `react-scripts build`',
|
placeholder: '`npm run build` or `react-scripts build`',
|
||||||
@@ -1129,7 +1151,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `react-scripts build`',
|
placeholder: '`npm run build` or `react-scripts build`',
|
||||||
@@ -1188,7 +1211,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `gridsome build`',
|
placeholder: '`npm run build` or `gridsome build`',
|
||||||
@@ -1223,7 +1247,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `umi build`',
|
placeholder: '`npm run build` or `umi build`',
|
||||||
@@ -1267,7 +1292,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `sapper export`',
|
placeholder: '`npm run build` or `sapper export`',
|
||||||
@@ -1302,7 +1328,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `saber build`',
|
placeholder: '`npm run build` or `saber build`',
|
||||||
@@ -1351,7 +1378,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `stencil build`',
|
placeholder: '`npm run build` or `stencil build`',
|
||||||
@@ -1420,7 +1448,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `nuxt generate`',
|
placeholder: '`npm run build` or `nuxt generate`',
|
||||||
@@ -1476,7 +1505,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
value: 'yarn rw deploy vercel',
|
value: 'yarn rw deploy vercel',
|
||||||
@@ -1606,7 +1636,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `brunch build --production`',
|
placeholder: '`npm run build` or `brunch build --production`',
|
||||||
@@ -1717,7 +1748,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
value: 'shopify hydrogen build',
|
value: 'shopify hydrogen build',
|
||||||
@@ -1753,7 +1785,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `vite build`',
|
placeholder: '`npm run build` or `vite build`',
|
||||||
@@ -1787,7 +1820,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `vitepress build docs`',
|
placeholder: '`npm run build` or `vitepress build docs`',
|
||||||
@@ -1819,7 +1853,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `vuepress build src`',
|
placeholder: '`npm run build` or `vuepress build src`',
|
||||||
@@ -1852,7 +1887,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `parcel build`',
|
placeholder: '`npm run build` or `parcel build`',
|
||||||
@@ -1909,7 +1945,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run build` or `sanity build`',
|
placeholder: '`npm run build` or `sanity build`',
|
||||||
@@ -1953,7 +1990,8 @@ export const frameworks = [
|
|||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
value: 'storybook build',
|
value: 'storybook build',
|
||||||
@@ -1975,7 +2013,8 @@ export const frameworks = [
|
|||||||
description: 'No framework or an unoptimized framework.',
|
description: 'No framework or an unoptimized framework.',
|
||||||
settings: {
|
settings: {
|
||||||
installCommand: {
|
installCommand: {
|
||||||
placeholder: '`yarn install`, `pnpm install`, or `npm install`',
|
placeholder:
|
||||||
|
'`yarn install`, `pnpm install`, `npm install`, or `bun install`',
|
||||||
},
|
},
|
||||||
buildCommand: {
|
buildCommand: {
|
||||||
placeholder: '`npm run vercel-build` or `npm run build`',
|
placeholder: '`npm run vercel-build` or `npm run build`',
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @vercel/fs-detectors
|
# @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
|
## 5.0.2
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vercel/fs-detectors",
|
"name": "@vercel/fs-detectors",
|
||||||
"version": "5.0.2",
|
"version": "5.0.3",
|
||||||
"description": "Vercel filesystem detectors",
|
"description": "Vercel filesystem detectors",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
"types": "./dist/index.d.ts",
|
"types": "./dist/index.d.ts",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vercel/error-utils": "2.0.1",
|
"@vercel/error-utils": "2.0.1",
|
||||||
"@vercel/frameworks": "2.0.1",
|
"@vercel/frameworks": "2.0.2",
|
||||||
"@vercel/routing-utils": "3.0.0",
|
"@vercel/routing-utils": "3.0.0",
|
||||||
"glob": "8.0.3",
|
"glob": "8.0.3",
|
||||||
"js-yaml": "4.1.0",
|
"js-yaml": "4.1.0",
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
# @vercel/next
|
# @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
|
## 4.0.3
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vercel/next",
|
"name": "@vercel/next",
|
||||||
"version": "4.0.3",
|
"version": "4.0.5",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"main": "./dist/index",
|
"main": "./dist/index",
|
||||||
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/next-js",
|
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/next-js",
|
||||||
|
|||||||
@@ -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 EMPTY_ALLOW_QUERY_FOR_PRERENDERED_VERSION = 'v12.2.0';
|
||||||
const CORRECTED_MANIFESTS_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({
|
export async function serverBuild({
|
||||||
dynamicPages,
|
dynamicPages,
|
||||||
pagesDir,
|
pagesDir,
|
||||||
@@ -305,16 +311,32 @@ export async function serverBuild({
|
|||||||
let nextServerBuildTrace;
|
let nextServerBuildTrace;
|
||||||
let instrumentationHookBuildTrace;
|
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(
|
const nextServerFile = resolveFrom(
|
||||||
projectDir,
|
projectDir,
|
||||||
`${getNextServerPath(nextVersion)}/next-server.js`
|
useBundledServer
|
||||||
|
? BUNDLED_SERVER_NEXT_PATH
|
||||||
|
: `${getNextServerPath(nextVersion)}/next-server.js`
|
||||||
);
|
);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// leverage next-server trace from build if available
|
// leverage next-server trace from build if available
|
||||||
nextServerBuildTrace = JSON.parse(
|
nextServerBuildTrace = JSON.parse(
|
||||||
await fs.readFile(
|
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'
|
'utf8'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -407,6 +429,7 @@ export async function serverBuild({
|
|||||||
const apiPages: string[] = [];
|
const apiPages: string[] = [];
|
||||||
const nonApiPages: string[] = [];
|
const nonApiPages: string[] = [];
|
||||||
const appRouterPages: string[] = [];
|
const appRouterPages: string[] = [];
|
||||||
|
const appRouteHandlers: string[] = [];
|
||||||
|
|
||||||
lambdaPageKeys.forEach(page => {
|
lambdaPageKeys.forEach(page => {
|
||||||
if (
|
if (
|
||||||
@@ -428,7 +451,11 @@ export async function serverBuild({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (lambdaAppPaths[page]) {
|
if (lambdaAppPaths[page]) {
|
||||||
appRouterPages.push(page);
|
if (lambdaAppPaths[page].fsPath.endsWith('route.js')) {
|
||||||
|
appRouteHandlers.push(page);
|
||||||
|
} else {
|
||||||
|
appRouterPages.push(page);
|
||||||
|
}
|
||||||
} else if (pageMatchesApi(page)) {
|
} else if (pageMatchesApi(page)) {
|
||||||
apiPages.push(page);
|
apiPages.push(page);
|
||||||
} else {
|
} else {
|
||||||
@@ -596,7 +623,9 @@ export async function serverBuild({
|
|||||||
)
|
)
|
||||||
.replace(
|
.replace(
|
||||||
'__NEXT_SERVER_PATH__',
|
'__NEXT_SERVER_PATH__',
|
||||||
`${getNextServerPath(nextVersion)}/next-server.js`
|
useBundledServer
|
||||||
|
? BUNDLED_SERVER_NEXT_PATH
|
||||||
|
: `${getNextServerPath(nextVersion)}/next-server.js`
|
||||||
);
|
);
|
||||||
|
|
||||||
const appLauncher = launcher.replace(
|
const appLauncher = launcher.replace(
|
||||||
@@ -632,6 +661,7 @@ export async function serverBuild({
|
|||||||
const mergedPageKeys = [
|
const mergedPageKeys = [
|
||||||
...nonApiPages,
|
...nonApiPages,
|
||||||
...appRouterPages,
|
...appRouterPages,
|
||||||
|
...appRouteHandlers,
|
||||||
...apiPages,
|
...apiPages,
|
||||||
...internalPages,
|
...internalPages,
|
||||||
];
|
];
|
||||||
@@ -793,6 +823,10 @@ export async function serverBuild({
|
|||||||
pageExtensions,
|
pageExtensions,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
for (const group of pageLambdaGroups) {
|
||||||
|
group.isPages = true;
|
||||||
|
}
|
||||||
|
|
||||||
const appRouterLambdaGroups = await getPageLambdaGroups({
|
const appRouterLambdaGroups = await getPageLambdaGroups({
|
||||||
entryPath: projectDir,
|
entryPath: projectDir,
|
||||||
config,
|
config,
|
||||||
@@ -809,6 +843,22 @@ export async function serverBuild({
|
|||||||
pageExtensions,
|
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) {
|
for (const group of appRouterLambdaGroups) {
|
||||||
if (!group.isPrerenders) {
|
if (!group.isPrerenders) {
|
||||||
group.isStreaming = true;
|
group.isStreaming = true;
|
||||||
@@ -816,6 +866,14 @@ export async function serverBuild({
|
|||||||
group.isAppRouter = true;
|
group.isAppRouter = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (const group of appRouteHandlersLambdaGroups) {
|
||||||
|
if (!group.isPrerenders) {
|
||||||
|
group.isStreaming = true;
|
||||||
|
}
|
||||||
|
group.isAppRouter = true;
|
||||||
|
group.isAppRouteHandler = true;
|
||||||
|
}
|
||||||
|
|
||||||
const apiLambdaGroups = await getPageLambdaGroups({
|
const apiLambdaGroups = await getPageLambdaGroups({
|
||||||
entryPath: projectDir,
|
entryPath: projectDir,
|
||||||
config,
|
config,
|
||||||
@@ -857,6 +915,14 @@ export async function serverBuild({
|
|||||||
pseudoLayerBytes: group.pseudoLayerBytes,
|
pseudoLayerBytes: group.pseudoLayerBytes,
|
||||||
uncompressedLayerBytes: group.pseudoLayerUncompressedBytes,
|
uncompressedLayerBytes: group.pseudoLayerUncompressedBytes,
|
||||||
})),
|
})),
|
||||||
|
appRouteHandlersLambdaGroups: appRouteHandlersLambdaGroups.map(
|
||||||
|
group => ({
|
||||||
|
pages: group.pages,
|
||||||
|
isPrerender: group.isPrerenders,
|
||||||
|
pseudoLayerBytes: group.pseudoLayerBytes,
|
||||||
|
uncompressedLayerBytes: group.pseudoLayerUncompressedBytes,
|
||||||
|
})
|
||||||
|
),
|
||||||
nextServerLayerSize: initialPseudoLayer.pseudoLayerBytes,
|
nextServerLayerSize: initialPseudoLayer.pseudoLayerBytes,
|
||||||
},
|
},
|
||||||
null,
|
null,
|
||||||
@@ -867,6 +933,7 @@ export async function serverBuild({
|
|||||||
...pageLambdaGroups,
|
...pageLambdaGroups,
|
||||||
...appRouterLambdaGroups,
|
...appRouterLambdaGroups,
|
||||||
...apiLambdaGroups,
|
...apiLambdaGroups,
|
||||||
|
...appRouteHandlersLambdaGroups,
|
||||||
];
|
];
|
||||||
|
|
||||||
await detectLambdaLimitExceeding(
|
await detectLambdaLimitExceeding(
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ const nextServer = new NextServer({
|
|||||||
minimalMode: true,
|
minimalMode: true,
|
||||||
customServer: false,
|
customServer: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
const requestHandler = nextServer.getRequestHandler();
|
const requestHandler = nextServer.getRequestHandler();
|
||||||
|
|
||||||
module.exports = async (req: IncomingMessage, res: ServerResponse) => {
|
module.exports = async (req: IncomingMessage, res: ServerResponse) => {
|
||||||
|
|||||||
@@ -856,6 +856,7 @@ export type NextPrerenderedRoutes = {
|
|||||||
srcRoute: string | null;
|
srcRoute: string | null;
|
||||||
initialStatus?: number;
|
initialStatus?: number;
|
||||||
initialHeaders?: Record<string, string>;
|
initialHeaders?: Record<string, string>;
|
||||||
|
experimentalBypassFor?: HasField;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -864,6 +865,7 @@ export type NextPrerenderedRoutes = {
|
|||||||
routeRegex: string;
|
routeRegex: string;
|
||||||
dataRoute: string | null;
|
dataRoute: string | null;
|
||||||
dataRouteRegex: string | null;
|
dataRouteRegex: string | null;
|
||||||
|
experimentalBypassFor?: HasField;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -873,6 +875,7 @@ export type NextPrerenderedRoutes = {
|
|||||||
routeRegex: string;
|
routeRegex: string;
|
||||||
dataRoute: string | null;
|
dataRoute: string | null;
|
||||||
dataRouteRegex: string | null;
|
dataRouteRegex: string | null;
|
||||||
|
experimentalBypassFor?: HasField;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -881,6 +884,7 @@ export type NextPrerenderedRoutes = {
|
|||||||
routeRegex: string;
|
routeRegex: string;
|
||||||
dataRoute: string | null;
|
dataRoute: string | null;
|
||||||
dataRouteRegex: string | null;
|
dataRouteRegex: string | null;
|
||||||
|
experimentalBypassFor?: HasField;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1084,6 +1088,7 @@ export async function getPrerenderManifest(
|
|||||||
dataRoute: string | null;
|
dataRoute: string | null;
|
||||||
initialStatus?: number;
|
initialStatus?: number;
|
||||||
initialHeaders?: Record<string, string>;
|
initialHeaders?: Record<string, string>;
|
||||||
|
experimentalBypassFor?: HasField;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
dynamicRoutes: {
|
dynamicRoutes: {
|
||||||
@@ -1092,6 +1097,7 @@ export async function getPrerenderManifest(
|
|||||||
fallback: string | false;
|
fallback: string | false;
|
||||||
dataRoute: string | null;
|
dataRoute: string | null;
|
||||||
dataRouteRegex: string | null;
|
dataRouteRegex: string | null;
|
||||||
|
experimentalBypassFor?: HasField;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
preview: {
|
preview: {
|
||||||
@@ -1177,10 +1183,12 @@ export async function getPrerenderManifest(
|
|||||||
|
|
||||||
let initialStatus: undefined | number;
|
let initialStatus: undefined | number;
|
||||||
let initialHeaders: undefined | Record<string, string>;
|
let initialHeaders: undefined | Record<string, string>;
|
||||||
|
let experimentalBypassFor: undefined | HasField;
|
||||||
|
|
||||||
if (manifest.version === 4) {
|
if (manifest.version === 4) {
|
||||||
initialStatus = manifest.routes[route].initialStatus;
|
initialStatus = manifest.routes[route].initialStatus;
|
||||||
initialHeaders = manifest.routes[route].initialHeaders;
|
initialHeaders = manifest.routes[route].initialHeaders;
|
||||||
|
experimentalBypassFor = manifest.routes[route].experimentalBypassFor;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.staticRoutes[route] = {
|
ret.staticRoutes[route] = {
|
||||||
@@ -1192,15 +1200,23 @@ export async function getPrerenderManifest(
|
|||||||
srcRoute,
|
srcRoute,
|
||||||
initialStatus,
|
initialStatus,
|
||||||
initialHeaders,
|
initialHeaders,
|
||||||
|
experimentalBypassFor,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
lazyRoutes.forEach(lazyRoute => {
|
lazyRoutes.forEach(lazyRoute => {
|
||||||
const { routeRegex, fallback, dataRoute, dataRouteRegex } =
|
const { routeRegex, fallback, dataRoute, dataRouteRegex } =
|
||||||
manifest.dynamicRoutes[lazyRoute];
|
manifest.dynamicRoutes[lazyRoute];
|
||||||
|
let experimentalBypassFor: undefined | HasField;
|
||||||
|
|
||||||
|
if (manifest.version === 4) {
|
||||||
|
experimentalBypassFor =
|
||||||
|
manifest.dynamicRoutes[lazyRoute].experimentalBypassFor;
|
||||||
|
}
|
||||||
|
|
||||||
if (typeof fallback === 'string') {
|
if (typeof fallback === 'string') {
|
||||||
ret.fallbackRoutes[lazyRoute] = {
|
ret.fallbackRoutes[lazyRoute] = {
|
||||||
|
experimentalBypassFor,
|
||||||
routeRegex,
|
routeRegex,
|
||||||
fallback,
|
fallback,
|
||||||
dataRoute,
|
dataRoute,
|
||||||
@@ -1208,6 +1224,7 @@ export async function getPrerenderManifest(
|
|||||||
};
|
};
|
||||||
} else if (fallback === null) {
|
} else if (fallback === null) {
|
||||||
ret.blockingFallbackRoutes[lazyRoute] = {
|
ret.blockingFallbackRoutes[lazyRoute] = {
|
||||||
|
experimentalBypassFor,
|
||||||
routeRegex,
|
routeRegex,
|
||||||
dataRoute,
|
dataRoute,
|
||||||
dataRouteRegex,
|
dataRouteRegex,
|
||||||
@@ -1216,6 +1233,7 @@ export async function getPrerenderManifest(
|
|||||||
// Fallback behavior is disabled, all routes would've been provided
|
// Fallback behavior is disabled, all routes would've been provided
|
||||||
// in the top-level `routes` key (`staticRoutes`).
|
// in the top-level `routes` key (`staticRoutes`).
|
||||||
ret.omittedRoutes[lazyRoute] = {
|
ret.omittedRoutes[lazyRoute] = {
|
||||||
|
experimentalBypassFor,
|
||||||
routeRegex,
|
routeRegex,
|
||||||
dataRoute,
|
dataRoute,
|
||||||
dataRouteRegex,
|
dataRouteRegex,
|
||||||
@@ -1391,8 +1409,10 @@ export type LambdaGroup = {
|
|||||||
memory?: number;
|
memory?: number;
|
||||||
maxDuration?: number;
|
maxDuration?: number;
|
||||||
isAppRouter?: boolean;
|
isAppRouter?: boolean;
|
||||||
|
isAppRouteHandler?: boolean;
|
||||||
isStreaming?: boolean;
|
isStreaming?: boolean;
|
||||||
isPrerenders?: boolean;
|
isPrerenders?: boolean;
|
||||||
|
isPages?: boolean;
|
||||||
isApiLambda: boolean;
|
isApiLambda: boolean;
|
||||||
pseudoLayer: PseudoLayer;
|
pseudoLayer: PseudoLayer;
|
||||||
pseudoLayerBytes: number;
|
pseudoLayerBytes: number;
|
||||||
@@ -1907,6 +1927,7 @@ export const onPrerenderRoute =
|
|||||||
let dataRoute: string | null;
|
let dataRoute: string | null;
|
||||||
let initialStatus: number | undefined;
|
let initialStatus: number | undefined;
|
||||||
let initialHeaders: Record<string, string> | undefined;
|
let initialHeaders: Record<string, string> | undefined;
|
||||||
|
let experimentalBypassFor: HasField | undefined;
|
||||||
|
|
||||||
if (isFallback || isBlocking) {
|
if (isFallback || isBlocking) {
|
||||||
const pr = isFallback
|
const pr = isFallback
|
||||||
@@ -1923,10 +1944,13 @@ export const onPrerenderRoute =
|
|||||||
}
|
}
|
||||||
srcRoute = null;
|
srcRoute = null;
|
||||||
dataRoute = pr.dataRoute;
|
dataRoute = pr.dataRoute;
|
||||||
|
experimentalBypassFor = pr.experimentalBypassFor;
|
||||||
} else if (isOmitted) {
|
} else if (isOmitted) {
|
||||||
initialRevalidate = false;
|
initialRevalidate = false;
|
||||||
srcRoute = routeKey;
|
srcRoute = routeKey;
|
||||||
dataRoute = prerenderManifest.omittedRoutes[routeKey].dataRoute;
|
dataRoute = prerenderManifest.omittedRoutes[routeKey].dataRoute;
|
||||||
|
experimentalBypassFor =
|
||||||
|
prerenderManifest.omittedRoutes[routeKey].experimentalBypassFor;
|
||||||
} else {
|
} else {
|
||||||
const pr = prerenderManifest.staticRoutes[routeKey];
|
const pr = prerenderManifest.staticRoutes[routeKey];
|
||||||
({
|
({
|
||||||
@@ -1935,6 +1959,7 @@ export const onPrerenderRoute =
|
|||||||
dataRoute,
|
dataRoute,
|
||||||
initialHeaders,
|
initialHeaders,
|
||||||
initialStatus,
|
initialStatus,
|
||||||
|
experimentalBypassFor,
|
||||||
} = pr);
|
} = pr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2175,6 +2200,7 @@ export const onPrerenderRoute =
|
|||||||
fallback: htmlFsRef,
|
fallback: htmlFsRef,
|
||||||
group: prerenderGroup,
|
group: prerenderGroup,
|
||||||
bypassToken: prerenderManifest.bypassToken,
|
bypassToken: prerenderManifest.bypassToken,
|
||||||
|
experimentalBypassFor,
|
||||||
initialStatus,
|
initialStatus,
|
||||||
initialHeaders,
|
initialHeaders,
|
||||||
sourcePath,
|
sourcePath,
|
||||||
@@ -2203,6 +2229,7 @@ export const onPrerenderRoute =
|
|||||||
fallback: jsonFsRef,
|
fallback: jsonFsRef,
|
||||||
group: prerenderGroup,
|
group: prerenderGroup,
|
||||||
bypassToken: prerenderManifest.bypassToken,
|
bypassToken: prerenderManifest.bypassToken,
|
||||||
|
experimentalBypassFor,
|
||||||
|
|
||||||
...(isNotFound
|
...(isNotFound
|
||||||
? {
|
? {
|
||||||
|
|||||||
1
packages/next/test/fixtures/37-bundled-server/.gitignore
vendored
Normal file
1
packages/next/test/fixtures/37-bundled-server/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.vercel
|
||||||
5
packages/next/test/fixtures/37-bundled-server/app/app-route/route.js
vendored
Normal file
5
packages/next/test/fixtures/37-bundled-server/app/app-route/route.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
export async function GET() {
|
||||||
|
return new Response('hello world from app route')
|
||||||
|
}
|
||||||
|
|
||||||
|
export const dynamic = 'force-dynamic'
|
||||||
5
packages/next/test/fixtures/37-bundled-server/app/app/page.js
vendored
Normal file
5
packages/next/test/fixtures/37-bundled-server/app/app/page.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
export default function Page() {
|
||||||
|
return <p>hello world from app router</p>
|
||||||
|
}
|
||||||
|
|
||||||
|
export const dynamic = 'force-dynamic'
|
||||||
10
packages/next/test/fixtures/37-bundled-server/app/layout.js
vendored
Normal file
10
packages/next/test/fixtures/37-bundled-server/app/layout.js
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
export default function Layout({children}) {
|
||||||
|
return <html>
|
||||||
|
<head>
|
||||||
|
<title>My page</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{children}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
}
|
||||||
8
packages/next/test/fixtures/37-bundled-server/index.test.js
vendored
Normal file
8
packages/next/test/fixtures/37-bundled-server/index.test.js
vendored
Normal 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);
|
||||||
|
});
|
||||||
|
});
|
||||||
15
packages/next/test/fixtures/37-bundled-server/package.json
vendored
Normal file
15
packages/next/test/fixtures/37-bundled-server/package.json
vendored
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
5
packages/next/test/fixtures/37-bundled-server/pages/api/hello.js
vendored
Normal file
5
packages/next/test/fixtures/37-bundled-server/pages/api/hello.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
export default async (req, res) => {
|
||||||
|
res.status(200).json({
|
||||||
|
payload: `hello world from api`
|
||||||
|
});
|
||||||
|
};
|
||||||
7
packages/next/test/fixtures/37-bundled-server/pages/index.js
vendored
Normal file
7
packages/next/test/fixtures/37-bundled-server/pages/index.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
export default function Home(props) {
|
||||||
|
return `hello world from pages`;
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getServerSideProps() {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
24
packages/next/test/fixtures/37-bundled-server/probes.json
vendored
Normal file
24
packages/next/test/fixtures/37-bundled-server/probes.json
vendored
Normal 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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
7
packages/next/test/fixtures/37-bundled-server/vercel.json
vendored
Normal file
7
packages/next/test/fixtures/37-bundled-server/vercel.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"env": {
|
||||||
|
"VERCEL_NEXT_BUNDLED_SERVER": "1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -72,7 +72,7 @@ if (parseInt(process.versions.node.split('.')[0], 10) >= 16) {
|
|||||||
)
|
)
|
||||||
).toBeFalsy();
|
).toBeFalsy();
|
||||||
|
|
||||||
expect(lambdas.size).toBe(4);
|
expect(lambdas.size).toBe(5);
|
||||||
|
|
||||||
// RSC, root-level page.js
|
// RSC, root-level page.js
|
||||||
expect(buildResult.output['index']).toBeDefined();
|
expect(buildResult.output['index']).toBeDefined();
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
# @vercel/remix-builder
|
# @vercel/remix-builder
|
||||||
|
|
||||||
|
## 2.0.5
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Fix usage with `bun install` ([#10489](https://github.com/vercel/vercel/pull/10489))
|
||||||
|
|
||||||
## 2.0.4
|
## 2.0.4
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vercel/remix-builder",
|
"name": "@vercel/remix-builder",
|
||||||
"version": "2.0.4",
|
"version": "2.0.5",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
"homepage": "https://vercel.com/docs",
|
"homepage": "https://vercel.com/docs",
|
||||||
|
|||||||
@@ -278,29 +278,41 @@ export function addDependencies(
|
|||||||
}
|
}
|
||||||
const args: string[] = [];
|
const args: string[] = [];
|
||||||
|
|
||||||
if (cliType === 'npm' || cliType === 'pnpm') {
|
switch (cliType) {
|
||||||
args.push('install');
|
case 'npm':
|
||||||
if (opts.saveDev) {
|
case 'pnpm':
|
||||||
args.push('--save-dev');
|
args.push('install');
|
||||||
}
|
if (opts.saveDev) {
|
||||||
} else {
|
args.push('--save-dev');
|
||||||
// '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');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Don't fail if pnpm is being run at the workspace root
|
// Don't fail if pnpm is being run at the workspace root
|
||||||
if (cliType === 'pnpm' && opts.cwd) {
|
if (cliType === 'pnpm' && opts.cwd) {
|
||||||
if (existsSync(join(opts.cwd, 'pnpm-workspace.yaml'))) {
|
if (existsSync(join(opts.cwd, 'pnpm-workspace.yaml'))) {
|
||||||
args.push('--workspace-root');
|
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}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,8 +34,8 @@
|
|||||||
"@types/semver": "7.3.13",
|
"@types/semver": "7.3.13",
|
||||||
"@vercel/build-utils": "7.2.0",
|
"@vercel/build-utils": "7.2.0",
|
||||||
"@vercel/error-utils": "2.0.1",
|
"@vercel/error-utils": "2.0.1",
|
||||||
"@vercel/frameworks": "2.0.1",
|
"@vercel/frameworks": "2.0.2",
|
||||||
"@vercel/fs-detectors": "5.0.2",
|
"@vercel/fs-detectors": "5.0.3",
|
||||||
"@vercel/ncc": "0.24.0",
|
"@vercel/ncc": "0.24.0",
|
||||||
"@vercel/routing-utils": "3.0.0",
|
"@vercel/routing-utils": "3.0.0",
|
||||||
"@vercel/static-config": "3.0.0",
|
"@vercel/static-config": "3.0.0",
|
||||||
|
|||||||
16
pnpm-lock.yaml
generated
16
pnpm-lock.yaml
generated
@@ -132,7 +132,7 @@ importers:
|
|||||||
specifier: 27.4.1
|
specifier: 27.4.1
|
||||||
version: 27.4.1
|
version: 27.4.1
|
||||||
'@vercel/frameworks':
|
'@vercel/frameworks':
|
||||||
specifier: 2.0.1
|
specifier: 2.0.2
|
||||||
version: link:../packages/frameworks
|
version: link:../packages/frameworks
|
||||||
|
|
||||||
internals/constants:
|
internals/constants:
|
||||||
@@ -322,7 +322,7 @@ importers:
|
|||||||
specifier: 1.0.1
|
specifier: 1.0.1
|
||||||
version: link:../hydrogen
|
version: link:../hydrogen
|
||||||
'@vercel/next':
|
'@vercel/next':
|
||||||
specifier: 4.0.3
|
specifier: 4.0.5
|
||||||
version: link:../next
|
version: link:../next
|
||||||
'@vercel/node':
|
'@vercel/node':
|
||||||
specifier: 3.0.5
|
specifier: 3.0.5
|
||||||
@@ -334,7 +334,7 @@ importers:
|
|||||||
specifier: 2.0.2
|
specifier: 2.0.2
|
||||||
version: link:../redwood
|
version: link:../redwood
|
||||||
'@vercel/remix-builder':
|
'@vercel/remix-builder':
|
||||||
specifier: 2.0.4
|
specifier: 2.0.5
|
||||||
version: link:../remix
|
version: link:../remix
|
||||||
'@vercel/ruby':
|
'@vercel/ruby':
|
||||||
specifier: 2.0.2
|
specifier: 2.0.2
|
||||||
@@ -482,10 +482,10 @@ importers:
|
|||||||
specifier: 2.0.1
|
specifier: 2.0.1
|
||||||
version: link:../error-utils
|
version: link:../error-utils
|
||||||
'@vercel/frameworks':
|
'@vercel/frameworks':
|
||||||
specifier: 2.0.1
|
specifier: 2.0.2
|
||||||
version: link:../frameworks
|
version: link:../frameworks
|
||||||
'@vercel/fs-detectors':
|
'@vercel/fs-detectors':
|
||||||
specifier: 5.0.2
|
specifier: 5.0.3
|
||||||
version: link:../fs-detectors
|
version: link:../fs-detectors
|
||||||
'@vercel/fun':
|
'@vercel/fun':
|
||||||
specifier: 1.1.0
|
specifier: 1.1.0
|
||||||
@@ -898,7 +898,7 @@ importers:
|
|||||||
specifier: 2.0.1
|
specifier: 2.0.1
|
||||||
version: link:../error-utils
|
version: link:../error-utils
|
||||||
'@vercel/frameworks':
|
'@vercel/frameworks':
|
||||||
specifier: 2.0.1
|
specifier: 2.0.2
|
||||||
version: link:../frameworks
|
version: link:../frameworks
|
||||||
'@vercel/routing-utils':
|
'@vercel/routing-utils':
|
||||||
specifier: 3.0.0
|
specifier: 3.0.0
|
||||||
@@ -1523,10 +1523,10 @@ importers:
|
|||||||
specifier: 2.0.1
|
specifier: 2.0.1
|
||||||
version: link:../error-utils
|
version: link:../error-utils
|
||||||
'@vercel/frameworks':
|
'@vercel/frameworks':
|
||||||
specifier: 2.0.1
|
specifier: 2.0.2
|
||||||
version: link:../frameworks
|
version: link:../frameworks
|
||||||
'@vercel/fs-detectors':
|
'@vercel/fs-detectors':
|
||||||
specifier: 5.0.2
|
specifier: 5.0.3
|
||||||
version: link:../fs-detectors
|
version: link:../fs-detectors
|
||||||
'@vercel/ncc':
|
'@vercel/ncc':
|
||||||
specifier: 0.24.0
|
specifier: 0.24.0
|
||||||
|
|||||||
30
utils/determine-turbo-hit-or-miss.js
vendored
Normal file
30
utils/determine-turbo-hit-or-miss.js
vendored
Normal 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);
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user