diff --git a/.github/workflows/autofix-docs.yml b/.github/workflows/autofix-docs.yml index 3b0cdcccfa8c..52acea2cff70 100644 --- a/.github/workflows/autofix-docs.yml +++ b/.github/workflows/autofix-docs.yml @@ -33,4 +33,4 @@ jobs: - name: Lint (docs) run: pnpm lint:docs:fix - - uses: autofix-ci/action@551dded8c6cc8a1054039c8bc0b8b48c51dfc6ef + - uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27 diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 554a54cd6973..99156d68c3d1 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -55,4 +55,4 @@ jobs: if: ${{ !contains(github.head_ref, 'renovate') }} run: pnpm vitest run bundle -u - - uses: autofix-ci/action@551dded8c6cc8a1054039c8bc0b8b48c51dfc6ef + - uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 71b6a9f8bf1a..ae4d5b2d08c2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,7 +80,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Initialize CodeQL - uses: github/codeql-action/init@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0 + uses: github/codeql-action/init@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2 with: config: | paths: @@ -97,7 +97,7 @@ jobs: languages: ${{ matrix.language }} - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0 + uses: github/codeql-action/analyze@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2 with: category: "/language:${{ matrix.language }}" diff --git a/.github/workflows/docs-check-links.yml b/.github/workflows/docs-check-links.yml index 1b4eab741e2e..1fcab93a7e8f 100644 --- a/.github/workflows/docs-check-links.yml +++ b/.github/workflows/docs-check-links.yml @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Lychee link checker - uses: lycheeverse/lychee-action@74c50ae9cb26a12ef66ad5769546fe0848ae9596 # for v1.8.0 + uses: lycheeverse/lychee-action@5c4ee84814c983aa7164eaee476f014e53ff3963 # for v1.8.0 with: # arguments with file types to check args: >- diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 43e3343fb949..7d4d5a27aa38 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -68,7 +68,7 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0 + uses: github/codeql-action/upload-sarif@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2 if: github.repository == 'nuxt/nuxt' && success() with: sarif_file: results.sarif diff --git a/docs/1.getting-started/18.upgrade.md b/docs/1.getting-started/18.upgrade.md index fd07a11920e7..bb8897957d02 100644 --- a/docs/1.getting-started/18.upgrade.md +++ b/docs/1.getting-started/18.upgrade.md @@ -992,6 +992,7 @@ Nuxt now generates separate TypeScript configurations for different contexts to * `.nuxt/tsconfig.app.json` - For your app code (Vue components, composables, etc.) * `.nuxt/tsconfig.server.json` - For your server-side code (Nitro/server directory) * `.nuxt/tsconfig.node.json` - For your build-time code (modules, `nuxt.config.ts`, etc.) + * `.nuxt/tsconfig.shared.json` - For code shared between app and server contexts (like types and non-environment specific utilities) * `.nuxt/tsconfig.json` - Legacy configuration for backward compatibility 2. **Backward compatibility**: Existing projects that extend `.nuxt/tsconfig.json` will continue to work as before. @@ -1027,6 +1028,7 @@ However, to take advantage of improved type checking, you can opt in to the new "references": [ { "path": "./.nuxt/tsconfig.app.json" }, { "path": "./.nuxt/tsconfig.server.json" }, + { "path": "./.nuxt/tsconfig.shared.json" }, { "path": "./.nuxt/tsconfig.node.json" } ] } diff --git a/docs/2.guide/1.concepts/10.nuxt-lifecycle.md b/docs/2.guide/1.concepts/10.nuxt-lifecycle.md index f03f62946afd..d15ecfe97e70 100644 --- a/docs/2.guide/1.concepts/10.nuxt-lifecycle.md +++ b/docs/2.guide/1.concepts/10.nuxt-lifecycle.md @@ -76,17 +76,27 @@ Any redirection on the server will result in a `Location:` header being sent to :read-more{to="/docs/guide/directory-structure/middleware"} -### Step 6: Setup Page and Components +### Step 6: Render Page and Components -Nuxt initializes the page and its components during this step and fetches any required data with `useFetch` and `useAsyncData`. Since there are no dynamic updates and no DOM operations occur on the server, Vue lifecycle hooks such as `onBeforeMount`, `onMounted`, and subsequent hooks are **NOT** executed during SSR. +Nuxt renders the page and its components and fetches any required data with `useFetch` and `useAsyncData` during this step. Since there are no dynamic updates and no DOM operations occur on the server, Vue lifecycle hooks such as `onBeforeMount`, `onMounted`, and subsequent hooks are **NOT** executed during SSR. + +By default, Vue pauses dependency tracking during SSR for better performance. + +::callout{icon="i-lucide-lightbulb"} +There is no reactivity on the server side because Vue SSR renders the app top-down as static HTML, making it impossible to go back and modify content that has already been rendered. +:: ::important You should avoid code that produces side effects that need cleanup in root scope of `