From 5f488947dc7369005da015f9cc363726137a1478 Mon Sep 17 00:00:00 2001 From: Colum Ferry Date: Thu, 1 May 2025 23:52:57 +0100 Subject: [PATCH] feat(remix)!: remove deprecated static-serve target name from inferred targets (#30982) This commit also contains various changes to ensure serve-static tasks depend on their build. BREAKING CHANGE: Remove deprecated static-serve target name from Remix Inferred Tasks in favour of serve-static. --- packages/next/src/plugins/plugin.ts | 15 ------ .../plugins/__snapshots__/plugin.spec.ts.snap | 6 +++ packages/nuxt/src/plugins/plugin.ts | 1 + .../convert-to-inferred.spec.ts | 2 +- .../plugins/__snapshots__/plugin.spec.ts.snap | 50 ------------------- packages/remix/src/plugins/plugin.spec.ts | 5 -- packages/remix/src/plugins/plugin.ts | 15 ------ packages/rspack/src/plugins/plugin.spec.ts | 3 ++ packages/rspack/src/plugins/plugin.ts | 1 + packages/storybook/src/plugins/plugin.spec.ts | 9 ++++ packages/storybook/src/plugins/plugin.ts | 1 + 11 files changed, 22 insertions(+), 86 deletions(-) diff --git a/packages/next/src/plugins/plugin.ts b/packages/next/src/plugins/plugin.ts index 851ac1f5ea..be6757891f 100644 --- a/packages/next/src/plugins/plugin.ts +++ b/packages/next/src/plugins/plugin.ts @@ -242,21 +242,6 @@ function getStartTargetConfig(options: NextPluginOptions, projectRoot: string) { return targetConfig; } -function getStaticServeTargetConfig(options: NextPluginOptions) { - const targetConfig: TargetConfiguration = { - executor: '@nx/web:file-server', - options: { - buildTarget: options.buildTargetName, - staticFilePath: '{projectRoot}/out', - port: 3000, - // Routes are found correctly with serve-static - spa: false, - }, - }; - - return targetConfig; -} - async function getOutputs(projectRoot, nextConfig) { let dir = '.next'; const { PHASE_PRODUCTION_BUILD } = require('next/constants'); diff --git a/packages/nuxt/src/plugins/__snapshots__/plugin.spec.ts.snap b/packages/nuxt/src/plugins/__snapshots__/plugin.spec.ts.snap index 63ea9b8cea..36fdc13fab 100644 --- a/packages/nuxt/src/plugins/__snapshots__/plugin.spec.ts.snap +++ b/packages/nuxt/src/plugins/__snapshots__/plugin.spec.ts.snap @@ -31,6 +31,9 @@ exports[`@nx/nuxt/plugin not root project should create nodes 1`] = ` }, "acme-serve-static": { "continuous": true, + "dependsOn": [ + "acme-build-static", + ], "executor": "@nx/web:file-server", "options": { "buildTarget": "acme-build-static", @@ -153,6 +156,9 @@ exports[`@nx/nuxt/plugin root project should create nodes 1`] = ` }, "serve-static": { "continuous": true, + "dependsOn": [ + "build-static", + ], "executor": "@nx/web:file-server", "options": { "buildTarget": "build-static", diff --git a/packages/nuxt/src/plugins/plugin.ts b/packages/nuxt/src/plugins/plugin.ts index f9e49c12d7..82ce9b6391 100644 --- a/packages/nuxt/src/plugins/plugin.ts +++ b/packages/nuxt/src/plugins/plugin.ts @@ -190,6 +190,7 @@ function serveTarget(projectRoot: string) { function serveStaticTarget(options: NuxtPluginOptions) { const targetConfig: TargetConfiguration = { + dependsOn: [`${options.buildStaticTargetName}`], continuous: true, executor: '@nx/web:file-server', options: { diff --git a/packages/remix/src/generators/convert-to-inferred/convert-to-inferred.spec.ts b/packages/remix/src/generators/convert-to-inferred/convert-to-inferred.spec.ts index 67419576bf..d93bc38ed4 100644 --- a/packages/remix/src/generators/convert-to-inferred/convert-to-inferred.spec.ts +++ b/packages/remix/src/generators/convert-to-inferred/convert-to-inferred.spec.ts @@ -246,7 +246,7 @@ describe('Remix - Convert To Inferred', () => { devTargetName: 'custom-dev', startTargetName: 'start', typecheckTargetName: 'typecheck', - staticServeTargetName: 'static-serve', + serveStaticTargetName: 'serve-static', }, }); updateNxJson(tree, nxJson); diff --git a/packages/remix/src/plugins/__snapshots__/plugin.spec.ts.snap b/packages/remix/src/plugins/__snapshots__/plugin.spec.ts.snap index b5f90586ac..bd687adfc0 100644 --- a/packages/remix/src/plugins/__snapshots__/plugin.spec.ts.snap +++ b/packages/remix/src/plugins/__snapshots__/plugin.spec.ts.snap @@ -65,16 +65,6 @@ exports[`@nx/remix/plugin Remix Classic Compiler non-root project should create "cwd": "my-app", }, }, - "static-serve": { - "command": "remix-serve build/index.js", - "continuous": true, - "dependsOn": [ - "build", - ], - "options": { - "cwd": "my-app", - }, - }, "tsc": { "cache": true, "command": "tsc --noEmit", @@ -185,16 +175,6 @@ exports[`@nx/remix/plugin Remix Classic Compiler non-root project should infer w "cwd": "my-app", }, }, - "static-serve": { - "command": "remix-serve build/index.js", - "continuous": true, - "dependsOn": [ - "build", - ], - "options": { - "cwd": "my-app", - }, - }, "tsc": { "cache": true, "command": "tsc --noEmit", @@ -300,16 +280,6 @@ exports[`@nx/remix/plugin Remix Classic Compiler root project should create node "cwd": ".", }, }, - "static-serve": { - "command": "remix-serve build/index.js", - "continuous": true, - "dependsOn": [ - "build", - ], - "options": { - "cwd": ".", - }, - }, "typecheck": { "cache": true, "command": "tsc --noEmit", @@ -412,16 +382,6 @@ exports[`@nx/remix/plugin Remix Vite Compiler non-root project should create nod "cwd": "my-app", }, }, - "static-serve": { - "command": "remix-serve build/server/index.js", - "continuous": true, - "dependsOn": [ - "build", - ], - "options": { - "cwd": "my-app", - }, - }, "tsc": { "cache": true, "command": "tsc --noEmit", @@ -526,16 +486,6 @@ exports[`@nx/remix/plugin Remix Vite Compiler root project should create nodes 1 "cwd": ".", }, }, - "static-serve": { - "command": "remix-serve build/server/index.js", - "continuous": true, - "dependsOn": [ - "build", - ], - "options": { - "cwd": ".", - }, - }, "typecheck": { "cache": true, "command": "tsc --noEmit", diff --git a/packages/remix/src/plugins/plugin.spec.ts b/packages/remix/src/plugins/plugin.spec.ts index bd2d1bd9d8..d3e39dd35b 100644 --- a/packages/remix/src/plugins/plugin.spec.ts +++ b/packages/remix/src/plugins/plugin.spec.ts @@ -96,7 +96,6 @@ module.exports = { devTargetName: 'dev', startTargetName: 'start', typecheckTargetName: 'typecheck', - staticServeTargetName: 'static-serve', }, context ); @@ -160,7 +159,6 @@ module.exports = { devTargetName: 'dev', startTargetName: 'start', typecheckTargetName: 'tsc', - staticServeTargetName: 'static-serve', }, context ); @@ -182,7 +180,6 @@ module.exports = { devTargetName: 'dev', startTargetName: 'start', typecheckTargetName: 'tsc', - staticServeTargetName: 'static-serve', }, context ); @@ -347,7 +344,6 @@ module.exports = { devTargetName: 'dev', startTargetName: 'start', typecheckTargetName: 'typecheck', - staticServeTargetName: 'static-serve', }, context ); @@ -419,7 +415,6 @@ module.exports = { devTargetName: 'dev', startTargetName: 'start', typecheckTargetName: 'tsc', - staticServeTargetName: 'static-serve', }, context ); diff --git a/packages/remix/src/plugins/plugin.ts b/packages/remix/src/plugins/plugin.ts index 33f2ef5a5f..1880c08a72 100644 --- a/packages/remix/src/plugins/plugin.ts +++ b/packages/remix/src/plugins/plugin.ts @@ -33,11 +33,6 @@ export interface RemixPluginOptions { typecheckTargetName?: string; buildDepsTargetName?: string; watchDepsTargetName?: string; - - /** - * @deprecated Use serveStaticTargetName instead. This option will be removed in Nx 21. - */ - staticServeTargetName?: string; serveStaticTargetName?: string; } @@ -212,14 +207,6 @@ async function buildRemixTargets( remixCompiler, isUsingTsSolutionSetup ); - // TODO(colum): Remove for Nx 21 - targets[options.staticServeTargetName] = startTarget( - projectRoot, - serverBuildPath, - options.buildTargetName, - remixCompiler, - isUsingTsSolutionSetup - ); targets[options.serveStaticTargetName] = startTarget( projectRoot, serverBuildPath, @@ -451,8 +438,6 @@ function normalizeOptions(options: RemixPluginOptions) { options.devTargetName ??= 'dev'; options.startTargetName ??= 'start'; options.typecheckTargetName ??= 'typecheck'; - // TODO(colum): remove for Nx 21 - options.staticServeTargetName ??= 'static-serve'; options.serveStaticTargetName ??= 'serve-static'; return options; diff --git a/packages/rspack/src/plugins/plugin.spec.ts b/packages/rspack/src/plugins/plugin.spec.ts index 775107d4f3..e6efaea454 100644 --- a/packages/rspack/src/plugins/plugin.spec.ts +++ b/packages/rspack/src/plugins/plugin.spec.ts @@ -126,6 +126,9 @@ describe('@nx/rspack', () => { }, "serve-static": { "continuous": true, + "dependsOn": [ + "build", + ], "executor": "@nx/web:file-server", "options": { "buildTarget": "build", diff --git a/packages/rspack/src/plugins/plugin.ts b/packages/rspack/src/plugins/plugin.ts index 85fb6ea7ef..4ebe664499 100644 --- a/packages/rspack/src/plugins/plugin.ts +++ b/packages/rspack/src/plugins/plugin.ts @@ -238,6 +238,7 @@ async function createRspackTargets( }; targets[options.serveStaticTargetName] = { + dependsOn: [`${options.buildTargetName}`], continuous: true, executor: '@nx/web:file-server', options: { diff --git a/packages/storybook/src/plugins/plugin.spec.ts b/packages/storybook/src/plugins/plugin.spec.ts index ee9b979b09..fee1fb9438 100644 --- a/packages/storybook/src/plugins/plugin.spec.ts +++ b/packages/storybook/src/plugins/plugin.spec.ts @@ -104,6 +104,9 @@ describe('@nx/storybook/plugin', () => { }, "static-storybook": { "continuous": true, + "dependsOn": [ + "build-storybook", + ], "executor": "@nx/web:file-server", "options": { "buildTarget": "build-storybook", @@ -187,6 +190,9 @@ describe('@nx/storybook/plugin', () => { }, "static-storybook": { "continuous": true, + "dependsOn": [ + "build-storybook", + ], "executor": "@nx/web:file-server", "options": { "buildTarget": "build-storybook", @@ -268,6 +274,9 @@ describe('@nx/storybook/plugin', () => { }, "static-storybook": { "continuous": true, + "dependsOn": [ + "build-storybook", + ], "executor": "@nx/web:file-server", "options": { "buildTarget": "build-storybook", diff --git a/packages/storybook/src/plugins/plugin.ts b/packages/storybook/src/plugins/plugin.ts index 4119ea909b..e350233db0 100644 --- a/packages/storybook/src/plugins/plugin.ts +++ b/packages/storybook/src/plugins/plugin.ts @@ -313,6 +313,7 @@ function serveStaticTarget( projectRoot: string ) { const targetConfig: TargetConfiguration = { + dependsOn: [`${options.buildStorybookTargetName}`], continuous: true, executor: '@nx/web:file-server', options: {