@nx/remix 23.3.0 → 24.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -7
- package/dist/generators.d.ts +1 -13
- package/dist/generators.js +3 -28
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.js +1 -2
- package/dist/plugins/component-testing/index.d.ts +1 -0
- package/dist/plugins/component-testing/index.js +1 -0
- package/dist/readme-template.md +10 -4
- package/dist/src/generators/convert-to-inferred/convert-to-inferred.js +2 -0
- package/dist/src/migrations/update-24-0-0/convert-to-inferred.d.ts +2 -0
- package/dist/src/migrations/update-24-0-0/convert-to-inferred.js +26 -0
- package/dist/src/migrations/update-24-0-0/migrate-to-react-router.md +50 -0
- package/dist/src/plugins/plugin.d.ts +5 -3
- package/dist/src/plugins/plugin.js +8 -7
- package/dist/src/utils/create-watch-paths.d.ts +1 -0
- package/dist/src/utils/create-watch-paths.js +1 -0
- package/dist/src/utils/deprecation.d.ts +2 -4
- package/dist/src/utils/deprecation.js +11 -13
- package/dist/src/utils/versions.d.ts +1 -19
- package/dist/src/utils/versions.js +1 -28
- package/generators.json +2 -79
- package/migrations.json +10 -0
- package/package.json +8 -19
- package/readme-template.md +10 -4
- package/dist/src/executors/build/build.impl.d.ts +0 -5
- package/dist/src/executors/build/build.impl.js +0 -121
- package/dist/src/executors/build/schema.d.ts +0 -8
- package/dist/src/executors/build/schema.json +0 -47
- package/dist/src/executors/serve/schema.d.ts +0 -9
- package/dist/src/executors/serve/schema.json +0 -43
- package/dist/src/executors/serve/serve.impl.d.ts +0 -6
- package/dist/src/executors/serve/serve.impl.js +0 -79
- package/dist/src/generators/action/action.impl.d.ts +0 -3
- package/dist/src/generators/action/action.impl.js +0 -37
- package/dist/src/generators/action/schema.d.ts +0 -3
- package/dist/src/generators/action/schema.json +0 -18
- package/dist/src/generators/application/application.impl.d.ts +0 -5
- package/dist/src/generators/application/application.impl.js +0 -239
- package/dist/src/generators/application/files/common/app/entry.client.tsx__tmpl__ +0 -18
- package/dist/src/generators/application/files/common/app/entry.server.tsx__tmpl__ +0 -139
- package/dist/src/generators/application/files/common/app/root.tsx__tmpl__ +0 -47
- package/dist/src/generators/application/files/common/app/routes/_index.tsx__tmpl__ +0 -9
- package/dist/src/generators/application/files/common/public/favicon.ico +0 -0
- package/dist/src/generators/application/files/common/tests/routes/_index.spec.tsx__tmpl__ +0 -17
- package/dist/src/generators/application/files/common/tsconfig.app.json__tmpl__ +0 -25
- package/dist/src/generators/application/files/common/tsconfig.json__tmpl__ +0 -27
- package/dist/src/generators/application/files/common/vite.config.mts__tmpl__ +0 -25
- package/dist/src/generators/application/files/non-root/.gitignore__tmpl__ +0 -4
- package/dist/src/generators/application/files/non-root/package.json__tmpl__ +0 -20
- package/dist/src/generators/application/files/nx-welcome/claimed/app/nx-welcome.tsx__tmpl__ +0 -868
- package/dist/src/generators/application/files/nx-welcome/not-configured/app/nx-welcome.tsx__tmpl__ +0 -868
- package/dist/src/generators/application/files/nx-welcome/unclaimed/app/nx-welcome.tsx__tmpl__ +0 -866
- package/dist/src/generators/application/files/ts-solution/package.json__tmpl__ +0 -20
- package/dist/src/generators/application/files/ts-solution/tsconfig.app.json__tmpl__ +0 -41
- package/dist/src/generators/application/files/ts-solution/tsconfig.json__tmpl__ +0 -10
- package/dist/src/generators/application/lib/add-e2e.d.ts +0 -3
- package/dist/src/generators/application/lib/add-e2e.js +0 -117
- package/dist/src/generators/application/lib/ignore-vite-temp-files.d.ts +0 -2
- package/dist/src/generators/application/lib/ignore-vite-temp-files.js +0 -50
- package/dist/src/generators/application/lib/index.d.ts +0 -4
- package/dist/src/generators/application/lib/index.js +0 -7
- package/dist/src/generators/application/lib/normalize-options.d.ts +0 -12
- package/dist/src/generators/application/lib/normalize-options.js +0 -40
- package/dist/src/generators/application/lib/update-unit-test-config.d.ts +0 -2
- package/dist/src/generators/application/lib/update-unit-test-config.js +0 -57
- package/dist/src/generators/application/schema.d.ts +0 -18
- package/dist/src/generators/application/schema.json +0 -70
- package/dist/src/generators/cypress-component-configuration/cypress-component-configuration.impl.d.ts +0 -5
- package/dist/src/generators/cypress-component-configuration/cypress-component-configuration.impl.js +0 -35
- package/dist/src/generators/cypress-component-configuration/files/cypress.config.ts__tmpl__ +0 -6
- package/dist/src/generators/cypress-component-configuration/schema.d.ts +0 -6
- package/dist/src/generators/cypress-component-configuration/schema.json +0 -41
- package/dist/src/generators/error-boundary/error-boundary.impl.d.ts +0 -3
- package/dist/src/generators/error-boundary/error-boundary.impl.js +0 -14
- package/dist/src/generators/error-boundary/lib/add-v2-error-boundary.d.ts +0 -3
- package/dist/src/generators/error-boundary/lib/add-v2-error-boundary.js +0 -37
- package/dist/src/generators/error-boundary/lib/index.d.ts +0 -2
- package/dist/src/generators/error-boundary/lib/index.js +0 -5
- package/dist/src/generators/error-boundary/lib/normalize-options.d.ts +0 -3
- package/dist/src/generators/error-boundary/lib/normalize-options.js +0 -13
- package/dist/src/generators/error-boundary/schema.d.ts +0 -4
- package/dist/src/generators/error-boundary/schema.json +0 -26
- package/dist/src/generators/init/init.d.ts +0 -5
- package/dist/src/generators/init/init.js +0 -67
- package/dist/src/generators/init/schema.d.ts +0 -7
- package/dist/src/generators/init/schema.json +0 -33
- package/dist/src/generators/library/lib/add-tsconfig-entry-points.d.ts +0 -3
- package/dist/src/generators/library/lib/add-tsconfig-entry-points.js +0 -20
- package/dist/src/generators/library/lib/add-unit-testing.d.ts +0 -3
- package/dist/src/generators/library/lib/add-unit-testing.js +0 -31
- package/dist/src/generators/library/lib/index.d.ts +0 -4
- package/dist/src/generators/library/lib/index.js +0 -7
- package/dist/src/generators/library/lib/normalize-options.d.ts +0 -8
- package/dist/src/generators/library/lib/normalize-options.js +0 -31
- package/dist/src/generators/library/lib/update-buildable-config.d.ts +0 -3
- package/dist/src/generators/library/lib/update-buildable-config.js +0 -23
- package/dist/src/generators/library/library.impl.d.ts +0 -6
- package/dist/src/generators/library/library.impl.js +0 -78
- package/dist/src/generators/library/schema.d.ts +0 -19
- package/dist/src/generators/library/schema.json +0 -89
- package/dist/src/generators/loader/loader.impl.d.ts +0 -3
- package/dist/src/generators/loader/loader.impl.js +0 -37
- package/dist/src/generators/loader/schema.d.ts +0 -3
- package/dist/src/generators/loader/schema.json +0 -18
- package/dist/src/generators/meta/lib/v2.impl.d.ts +0 -3
- package/dist/src/generators/meta/lib/v2.impl.js +0 -24
- package/dist/src/generators/meta/meta.impl.d.ts +0 -3
- package/dist/src/generators/meta/meta.impl.js +0 -9
- package/dist/src/generators/meta/schema.d.ts +0 -3
- package/dist/src/generators/meta/schema.json +0 -18
- package/dist/src/generators/preset/lib/normalize-options.d.ts +0 -10
- package/dist/src/generators/preset/lib/normalize-options.js +0 -19
- package/dist/src/generators/preset/preset.impl.d.ts +0 -3
- package/dist/src/generators/preset/preset.impl.js +0 -34
- package/dist/src/generators/preset/schema.d.ts +0 -4
- package/dist/src/generators/preset/schema.json +0 -14
- package/dist/src/generators/resource-route/resource-route.impl.d.ts +0 -3
- package/dist/src/generators/resource-route/resource-route.impl.js +0 -37
- package/dist/src/generators/resource-route/schema.d.ts +0 -6
- package/dist/src/generators/resource-route/schema.json +0 -44
- package/dist/src/generators/route/route.impl.d.ts +0 -3
- package/dist/src/generators/route/route.impl.js +0 -62
- package/dist/src/generators/route/schema.d.ts +0 -8
- package/dist/src/generators/route/schema.json +0 -55
- package/dist/src/generators/setup/schema.json +0 -14
- package/dist/src/generators/setup/setup.impl.d.ts +0 -2
- package/dist/src/generators/setup/setup.impl.js +0 -38
- package/dist/src/generators/storybook-configuration/files/vite.config.mts__tpl__ +0 -15
- package/dist/src/generators/storybook-configuration/schema.d.ts +0 -14
- package/dist/src/generators/storybook-configuration/schema.json +0 -78
- package/dist/src/generators/storybook-configuration/storybook-configuration.impl.d.ts +0 -4
- package/dist/src/generators/storybook-configuration/storybook-configuration.impl.js +0 -33
- package/dist/src/generators/style/schema.d.ts +0 -3
- package/dist/src/generators/style/schema.json +0 -25
- package/dist/src/generators/style/style.impl.d.ts +0 -3
- package/dist/src/generators/style/style.impl.js +0 -55
- package/dist/src/generators/utils/update-dependencies.d.ts +0 -2
- package/dist/src/generators/utils/update-dependencies.js +0 -32
- package/dist/src/utils/assert-and-pin-remix-typescript.d.ts +0 -21
- package/dist/src/utils/assert-and-pin-remix-typescript.js +0 -36
- package/dist/src/utils/get-default-export-name.d.ts +0 -2
- package/dist/src/utils/get-default-export-name.js +0 -7
- package/dist/src/utils/get-default-export.d.ts +0 -2
- package/dist/src/utils/get-default-export.js +0 -14
- package/dist/src/utils/insert-import.d.ts +0 -4
- package/dist/src/utils/insert-import.js +0 -53
- package/dist/src/utils/insert-statement-after-imports.d.ts +0 -5
- package/dist/src/utils/insert-statement-after-imports.js +0 -27
- package/dist/src/utils/insert-statement-in-default-function.d.ts +0 -2
- package/dist/src/utils/insert-statement-in-default-function.js +0 -22
- package/dist/src/utils/remix-config.d.ts +0 -6
- package/dist/src/utils/remix-config.js +0 -75
- package/dist/src/utils/remix-route-utils.d.ts +0 -4
- package/dist/src/utils/remix-route-utils.js +0 -26
- package/dist/src/utils/testing-config-utils.d.ts +0 -5
- package/dist/src/utils/testing-config-utils.js +0 -83
- package/executors.json +0 -14
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<p
|
|
1
|
+
<p align="center">
|
|
2
2
|
<picture>
|
|
3
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-
|
|
4
|
-
<img alt="Nx
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-logo-light.svg">
|
|
4
|
+
<img alt="Nx Logo" src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-logo.svg" width="140">
|
|
5
5
|
</picture>
|
|
6
6
|
</p>
|
|
7
7
|
|
|
@@ -23,7 +23,13 @@
|
|
|
23
23
|
|
|
24
24
|
Get to green PRs in half the time. Nx optimizes your builds, scales your CI, and fixes failed PRs. Built for developers and AI agents.
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
> `@nx/remix` is deprecated and will be removed in Nx 25. Nx 24 removes all executors and generators except `convert-to-inferred`.
|
|
27
|
+
|
|
28
|
+
Existing Remix v2 applications can keep using `@nx/remix/plugin` until Nx 25. The Nx 24 migration converts legacy executor targets to inferred tasks. Run `nx g @nx/remix:convert-to-inferred` to convert them manually.
|
|
29
|
+
|
|
30
|
+
For continued development, migrate to React Router with `@nx/react`. The `migrate-to-react-router` prompt migration guides an AI agent through the framework upgrade and Nx configuration, then asks it to run build and other relevant targets.
|
|
31
|
+
|
|
32
|
+
See the [Remix migration instructions](https://nx.dev/docs/technologies/react/remix/introduction).
|
|
27
33
|
|
|
28
34
|
## Getting Started
|
|
29
35
|
|
|
@@ -62,6 +68,3 @@ npx nx@latest init
|
|
|
62
68
|
- [Official Nx YouTube Channel](https://www.youtube.com/@NxDevtools)
|
|
63
69
|
- [Blog Posts About Nx](https://nx.dev/blog)
|
|
64
70
|
|
|
65
|
-
<p style="text-align: center;"><a href="https://nx.dev/#learning-materials" target="_blank" rel="noreferrer"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-courses-and-videos.svg"
|
|
66
|
-
width="100%" alt="Nx - Smart Monorepos · Fast Builds"></a></p>
|
|
67
|
-
|
package/dist/generators.d.ts
CHANGED
|
@@ -1,13 +1 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { default as applicationGenerator } from './src/generators/application/application.impl';
|
|
3
|
-
export { default as cypressComponentConfigurationGenerator } from './src/generators/cypress-component-configuration/cypress-component-configuration.impl';
|
|
4
|
-
export { default as errorBoundaryGenerator } from './src/generators/error-boundary/error-boundary.impl';
|
|
5
|
-
export { default as libraryGenerator } from './src/generators/library/library.impl';
|
|
6
|
-
export { default as loaderGenerator } from './src/generators/loader/loader.impl';
|
|
7
|
-
export { default as metaGenerator } from './src/generators/meta/meta.impl';
|
|
8
|
-
export { default as presetGenerator } from './src/generators/preset/preset.impl';
|
|
9
|
-
export { default as resourceRouteGenerator } from './src/generators/resource-route/resource-route.impl';
|
|
10
|
-
export { default as routeGenerator } from './src/generators/route/route.impl';
|
|
11
|
-
export { default as storybookConfigurationGenerator } from './src/generators/storybook-configuration/storybook-configuration.impl';
|
|
12
|
-
export { default as styleGenerator } from './src/generators/style/style.impl';
|
|
13
|
-
export { default as initGenerator } from './src/generators/init/init';
|
|
1
|
+
export { convertToInferred } from './src/generators/convert-to-inferred/convert-to-inferred';
|
package/dist/generators.js
CHANGED
|
@@ -1,30 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Object.defineProperty(exports, "actionGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(action_impl_1).default; } });
|
|
7
|
-
var application_impl_1 = require("./src/generators/application/application.impl");
|
|
8
|
-
Object.defineProperty(exports, "applicationGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(application_impl_1).default; } });
|
|
9
|
-
var cypress_component_configuration_impl_1 = require("./src/generators/cypress-component-configuration/cypress-component-configuration.impl");
|
|
10
|
-
Object.defineProperty(exports, "cypressComponentConfigurationGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(cypress_component_configuration_impl_1).default; } });
|
|
11
|
-
var error_boundary_impl_1 = require("./src/generators/error-boundary/error-boundary.impl");
|
|
12
|
-
Object.defineProperty(exports, "errorBoundaryGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(error_boundary_impl_1).default; } });
|
|
13
|
-
var library_impl_1 = require("./src/generators/library/library.impl");
|
|
14
|
-
Object.defineProperty(exports, "libraryGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(library_impl_1).default; } });
|
|
15
|
-
var loader_impl_1 = require("./src/generators/loader/loader.impl");
|
|
16
|
-
Object.defineProperty(exports, "loaderGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(loader_impl_1).default; } });
|
|
17
|
-
var meta_impl_1 = require("./src/generators/meta/meta.impl");
|
|
18
|
-
Object.defineProperty(exports, "metaGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(meta_impl_1).default; } });
|
|
19
|
-
var preset_impl_1 = require("./src/generators/preset/preset.impl");
|
|
20
|
-
Object.defineProperty(exports, "presetGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(preset_impl_1).default; } });
|
|
21
|
-
var resource_route_impl_1 = require("./src/generators/resource-route/resource-route.impl");
|
|
22
|
-
Object.defineProperty(exports, "resourceRouteGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(resource_route_impl_1).default; } });
|
|
23
|
-
var route_impl_1 = require("./src/generators/route/route.impl");
|
|
24
|
-
Object.defineProperty(exports, "routeGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(route_impl_1).default; } });
|
|
25
|
-
var storybook_configuration_impl_1 = require("./src/generators/storybook-configuration/storybook-configuration.impl");
|
|
26
|
-
Object.defineProperty(exports, "storybookConfigurationGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(storybook_configuration_impl_1).default; } });
|
|
27
|
-
var style_impl_1 = require("./src/generators/style/style.impl");
|
|
28
|
-
Object.defineProperty(exports, "styleGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(style_impl_1).default; } });
|
|
29
|
-
var init_1 = require("./src/generators/init/init");
|
|
30
|
-
Object.defineProperty(exports, "initGenerator", { enumerable: true, get: function () { return tslib_1.__importDefault(init_1).default; } });
|
|
3
|
+
exports.convertToInferred = void 0;
|
|
4
|
+
var convert_to_inferred_1 = require("./src/generators/convert-to-inferred/convert-to-inferred");
|
|
5
|
+
Object.defineProperty(exports, "convertToInferred", { enumerable: true, get: function () { return convert_to_inferred_1.convertToInferred; } });
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { createNodes, createNodesV2,
|
|
1
|
+
export { createNodes, createNodesV2, RemixPluginOptions, } from './src/plugins/plugin';
|
package/dist/plugin.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.createNodesV2 = exports.createNodes = void 0;
|
|
4
4
|
var plugin_1 = require("./src/plugins/plugin");
|
|
5
5
|
Object.defineProperty(exports, "createNodes", { enumerable: true, get: function () { return plugin_1.createNodes; } });
|
|
6
6
|
Object.defineProperty(exports, "createNodesV2", { enumerable: true, get: function () { return plugin_1.createNodesV2; } });
|
|
7
|
-
Object.defineProperty(exports, "createDependencies", { enumerable: true, get: function () { return plugin_1.createDependencies; } });
|
|
@@ -19,6 +19,7 @@ type ViteDevServer = {
|
|
|
19
19
|
* })
|
|
20
20
|
*
|
|
21
21
|
* @param pathToConfig will be used for loading project options and to construct the output paths for videos and screenshots
|
|
22
|
+
* @deprecated Migrate to React Router with `@nx/react`. This will be removed in Nx 25.
|
|
22
23
|
*/
|
|
23
24
|
export declare function nxComponentTestingPreset(pathToConfig: string): {
|
|
24
25
|
specPattern: string;
|
|
@@ -21,6 +21,7 @@ const path_1 = require("path");
|
|
|
21
21
|
* })
|
|
22
22
|
*
|
|
23
23
|
* @param pathToConfig will be used for loading project options and to construct the output paths for videos and screenshots
|
|
24
|
+
* @deprecated Migrate to React Router with `@nx/react`. This will be removed in Nx 25.
|
|
24
25
|
*/
|
|
25
26
|
function nxComponentTestingPreset(pathToConfig) {
|
|
26
27
|
const normalizedProjectRootPath = ['.ts', '.js'].some((ext) => pathToConfig.endsWith(ext))
|
package/dist/readme-template.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<p
|
|
1
|
+
<p align="center">
|
|
2
2
|
<picture>
|
|
3
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-
|
|
4
|
-
<img alt="Nx
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-logo-light.svg">
|
|
4
|
+
<img alt="Nx Logo" src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-logo.svg" width="140">
|
|
5
5
|
</picture>
|
|
6
6
|
</p>
|
|
7
7
|
|
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
|
|
14
14
|
Get to green PRs in half the time. Nx optimizes your builds, scales your CI, and fixes failed PRs. Built for developers and AI agents.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
> `@nx/remix` is deprecated and will be removed in Nx 25. Nx 24 removes all executors and generators except `convert-to-inferred`.
|
|
17
|
+
|
|
18
|
+
Existing Remix v2 applications can keep using `@nx/remix/plugin` until Nx 25. The Nx 24 migration converts legacy executor targets to inferred tasks. Run `nx g @nx/remix:convert-to-inferred` to convert them manually.
|
|
19
|
+
|
|
20
|
+
For continued development, migrate to React Router with `@nx/react`. The `migrate-to-react-router` prompt migration guides an AI agent through the framework upgrade and Nx configuration, then asks it to run build and other relevant targets.
|
|
21
|
+
|
|
22
|
+
See the [Remix migration instructions](https://nx.dev/docs/technologies/react/remix/introduction).
|
|
17
23
|
|
|
18
24
|
{{content}}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertToInferred = convertToInferred;
|
|
4
|
+
const deprecation_1 = require("../../utils/deprecation");
|
|
4
5
|
const devkit_1 = require("@nx/devkit");
|
|
5
6
|
const internal_1 = require("@nx/devkit/internal");
|
|
6
7
|
const plugin_1 = require("../../plugins/plugin");
|
|
@@ -8,6 +9,7 @@ const build_post_target_transformer_1 = require("./lib/build-post-target-transfo
|
|
|
8
9
|
const serve_post_target_transformer_1 = require("./lib/serve-post-target-transformer");
|
|
9
10
|
const versions_1 = require("../../utils/versions");
|
|
10
11
|
async function convertToInferred(tree, options) {
|
|
12
|
+
(0, deprecation_1.warnRemixDeprecation)();
|
|
11
13
|
(0, versions_1.assertSupportedRemixVersion)(tree);
|
|
12
14
|
const projectGraph = await (0, devkit_1.createProjectGraphAsync)();
|
|
13
15
|
const migrationLogs = new internal_1.AggregatedLog();
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = migrate;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const internal_1 = require("@nx/devkit/internal");
|
|
6
|
+
const convert_to_inferred_1 = require("../../generators/convert-to-inferred/convert-to-inferred");
|
|
7
|
+
const versions_1 = require("../../utils/versions");
|
|
8
|
+
async function migrate(tree) {
|
|
9
|
+
// The generator throws on a sub-floor Remix version, which would abort the
|
|
10
|
+
// whole `nx migrate --run-migrations` batch. Pre-flight it and skip instead.
|
|
11
|
+
try {
|
|
12
|
+
(0, versions_1.assertSupportedRemixVersion)(tree);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
devkit_1.logger.warn(`Skipping the @nx/remix executor conversion.\n\n${error instanceof Error ? error.message : error}\n\nRun \`nx g @nx/remix:convert-to-inferred\` after resolving the issue above.`);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
return await (0, convert_to_inferred_1.convertToInferred)(tree, {});
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (!(error instanceof internal_1.NoTargetsToMigrateError)) {
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Migrate Remix v2 to React Router v7
|
|
2
|
+
|
|
3
|
+
Migrate this workspace's Remix v2 applications to React Router v7 framework mode with `@nx/react`. Finish the application and Nx configuration changes, then validate the result. Do not replace an existing application with a generated starter.
|
|
4
|
+
|
|
5
|
+
Nx 24 removes `@nx/remix` executors and all generators except `convert-to-inferred`. A separate automatic migration converts legacy executors to `@nx/remix/plugin` inference without upgrading Remix. That inference plugin and the remaining helpers are deprecated for removal in Nx 25. This prompt performs the framework upgrade; users can defer it and keep Remix v2 on Nx 24.
|
|
6
|
+
|
|
7
|
+
## Read the upstream migration guides
|
|
8
|
+
|
|
9
|
+
Use the official guides as the source of framework migration details:
|
|
10
|
+
|
|
11
|
+
- [Remix v2 to React Router v7](https://reactrouter.com/7.18.4/upgrading/remix), including its linked codemod and Remix future flags.
|
|
12
|
+
- [React Router framework documentation](https://reactrouter.com/7.18.4/start/framework/installation) for routing, type generation, rendering, and deployment.
|
|
13
|
+
- [Nx React Router integration](https://nx.dev/docs/kb/react-router).
|
|
14
|
+
- For classic Remix compiler applications, first follow the [Remix Vite migration guide](https://v2.remix.run/docs/guides/vite/).
|
|
15
|
+
|
|
16
|
+
Read the resources rather than guessing changed APIs. Follow relevant links for the application's deployment adapter, custom server, or other features. Stay on React Router v7, the major `@nx/react` supports. Keep all React Router packages on the same v7 version. Do not claim completion if compatibility blocks the upgrade.
|
|
17
|
+
|
|
18
|
+
## Inspect the workspace
|
|
19
|
+
|
|
20
|
+
1. Determine the package manager, Nx version, and installed framework versions from the workspace manifests and lockfile. Keep Nx packages on the same version.
|
|
21
|
+
2. Find every Remix app and shared library importing `@remix-run/*`. Inspect `remix.config.*`, `vite.config.*`, application entry points, route conventions, and TypeScript configuration. Distinguish classic compiler, Vite, SPA, and server-rendered applications.
|
|
22
|
+
3. Inspect each project's resolved Nx targets with `nx show project <name> --json`, plus `nx.json`, project manifests, and CI commands. Record existing target names, dependencies, output paths, and plugin include/exclude rules.
|
|
23
|
+
4. Inspect loaders/actions, resource routes, sessions, error boundaries, and custom server or deployment adapter code. Preserve the application's routing and rendering behavior while following the upstream migration steps.
|
|
24
|
+
|
|
25
|
+
## Upgrade the applications
|
|
26
|
+
|
|
27
|
+
- Adopt required future flags and fix affected code using the upstream guides. Check Node and React prerequisites before updating dependencies.
|
|
28
|
+
- Use upstream codemods where appropriate, then inspect their changes. Update dependencies, imports, package scripts, and the lockfile using the workspace's package manager. Check shared libraries and tests as well as app source files.
|
|
29
|
+
- Replace the Remix Vite plugin with the React Router plugin. Create `react-router.config.*` and the route configuration, retaining the existing route URLs and conventions. Keep Nx aliases and workspace-library support in the Vite configuration.
|
|
30
|
+
- Update client/server entry points, runtime APIs, and types as directed by the guides. Configure React Router type generation and TypeScript includes. Adapt tests using Remix testing utilities.
|
|
31
|
+
- Update custom servers, adapters, and deployment commands when present. Follow their upstream resources. Check SPA/SSR settings, static assets, environment variables, and build output locations against the actual app.
|
|
32
|
+
|
|
33
|
+
## Finish the Nx integration
|
|
34
|
+
|
|
35
|
+
1. Install the matching version of `@nx/react` if needed. Register `@nx/react/router-plugin` in `nx.json` and ensure each migrated app has a recognized `react-router.config.*` beside its project manifest.
|
|
36
|
+
2. Map existing build/dev/start/typecheck target names to the React Router plugin options. Preserve CI references and task dependencies, or update their callers together. Do not blindly rename a `serve` target used by CI or e2e tests.
|
|
37
|
+
3. Inspect resolved targets again. Remove obsolete `@nx/remix:*` executor references and commands invoking the Remix CLI. Review explicit overrides and `targetDefaults`, including entries filtered by `@nx/remix/plugin`, so they do not override the new inferred commands or point at old outputs.
|
|
38
|
+
4. Check caching inputs and outputs against the React Router build directory. Update e2e server targets, Dockerfiles, deployment scripts, and start commands that refer to Remix artifacts.
|
|
39
|
+
5. Search for remaining `@nx/remix` usage, including `createWatchPaths`, Cypress component-testing presets, generator defaults, and plugin registrations. Replace obsolete helper usage with the relevant upstream or Nx configuration. Keep registrations scoped to apps that still use Remix if the workspace is migrated in stages.
|
|
40
|
+
6. Remove `@nx/remix` and unused `@remix-run/*` dependencies only after no project or shared configuration still needs them. Do not remove packages used by an unmigrated app.
|
|
41
|
+
|
|
42
|
+
## Validate and fix last-mile failures
|
|
43
|
+
|
|
44
|
+
Use the workspace package manager to run Nx commands. Discover available target names rather than assuming every app has the same targets.
|
|
45
|
+
|
|
46
|
+
- Run the production build for every migrated app.
|
|
47
|
+
- Run other relevant existing targets, such as typecheck, lint, unit tests, and e2e tests. Include affected shared libraries where applicable.
|
|
48
|
+
- Smoke-test the existing dev/start targets and key routes where the environment permits, including a loader/action or resource route if the app has one.
|
|
49
|
+
- Fix migration-related failures and rerun the failing checks. Check generated types, import resolution, stale target overrides, and deployment output paths when diagnosing failures. Do not disable tests or type checking to make validation pass.
|
|
50
|
+
- Report the migrated projects, versions, commands run, and results. List blockers or checks that could not run. Edits and dependency installation alone do not prove the migration works.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CreateNodes } from '@nx/devkit';
|
|
2
2
|
export interface RemixPluginOptions {
|
|
3
3
|
buildTargetName?: string;
|
|
4
4
|
devTargetName?: string;
|
|
@@ -9,8 +9,10 @@ export interface RemixPluginOptions {
|
|
|
9
9
|
serveStaticTargetName?: string;
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
-
* @deprecated
|
|
12
|
+
* @deprecated Migrate to React Router with `@nx/react`. This will be removed in Nx 25.
|
|
13
13
|
*/
|
|
14
|
-
export declare const createDependencies: CreateDependencies;
|
|
15
14
|
export declare const createNodes: CreateNodes<RemixPluginOptions>;
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Migrate to React Router with `@nx/react`. This will be removed in Nx 25.
|
|
17
|
+
*/
|
|
16
18
|
export declare const createNodesV2: CreateNodes<RemixPluginOptions>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createNodesV2 = exports.createNodes =
|
|
3
|
+
exports.createNodesV2 = exports.createNodes = void 0;
|
|
4
|
+
const deprecation_1 = require("../utils/deprecation");
|
|
4
5
|
const internal_1 = require("@nx/devkit/internal");
|
|
5
6
|
const devkit_1 = require("@nx/devkit");
|
|
6
7
|
const js_1 = require("@nx/js");
|
|
@@ -8,17 +9,14 @@ const path_1 = require("path");
|
|
|
8
9
|
const fs_1 = require("fs");
|
|
9
10
|
const executor_utils_1 = require("../utils/executor-utils");
|
|
10
11
|
const internal_2 = require("@nx/js/internal");
|
|
12
|
+
const remixConfigGlob = '**/{remix,vite}.config.{js,cjs,mjs,ts,cts,mts}';
|
|
11
13
|
/**
|
|
12
|
-
* @deprecated
|
|
14
|
+
* @deprecated Migrate to React Router with `@nx/react`. This will be removed in Nx 25.
|
|
13
15
|
*/
|
|
14
|
-
const createDependencies = () => {
|
|
15
|
-
return [];
|
|
16
|
-
};
|
|
17
|
-
exports.createDependencies = createDependencies;
|
|
18
|
-
const remixConfigGlob = '**/{remix,vite}.config.{js,cjs,mjs,ts,cts,mts}';
|
|
19
16
|
exports.createNodes = [
|
|
20
17
|
remixConfigGlob,
|
|
21
18
|
async (configFilePaths, options, context) => {
|
|
19
|
+
(0, deprecation_1.warnRemixDeprecation)();
|
|
22
20
|
const optionsHash = (0, internal_1.hashObject)(options);
|
|
23
21
|
const cachePath = (0, path_1.join)(internal_1.workspaceDataDirectory, `remix-${optionsHash}.hash`);
|
|
24
22
|
const targetsCache = new internal_1.PluginCache(cachePath);
|
|
@@ -55,6 +53,9 @@ exports.createNodes = [
|
|
|
55
53
|
}
|
|
56
54
|
},
|
|
57
55
|
];
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated Migrate to React Router with `@nx/react`. This will be removed in Nx 25.
|
|
58
|
+
*/
|
|
58
59
|
exports.createNodesV2 = exports.createNodes;
|
|
59
60
|
async function createNodesInternal(configFilePath, options, context, targetsCache, isUsingTsSolutionSetup, pmc, siblingFiles, remixCompiler, hash) {
|
|
60
61
|
const projectRoot = (0, path_1.dirname)(configFilePath);
|
|
@@ -3,6 +3,7 @@ import { type ProjectGraph, type ProjectGraphProjectNode } from '@nx/devkit';
|
|
|
3
3
|
* Generates an array of paths to watch based on the project dependencies.
|
|
4
4
|
*
|
|
5
5
|
* @param {string} dirname The absolute path to the Remix project, typically `__dirname`.
|
|
6
|
+
* @deprecated Migrate to React Router with `@nx/react`. This will be removed in Nx 25.
|
|
6
7
|
*/
|
|
7
8
|
export declare function createWatchPaths(dirname: string): Promise<string[]>;
|
|
8
9
|
export declare function getRelativeDependencyPaths(project: ProjectGraphProjectNode, deps: string[], graph: ProjectGraph): string[];
|
|
@@ -9,6 +9,7 @@ const internal_1 = require("@nx/devkit/internal");
|
|
|
9
9
|
* Generates an array of paths to watch based on the project dependencies.
|
|
10
10
|
*
|
|
11
11
|
* @param {string} dirname The absolute path to the Remix project, typically `__dirname`.
|
|
12
|
+
* @deprecated Migrate to React Router with `@nx/react`. This will be removed in Nx 25.
|
|
12
13
|
*/
|
|
13
14
|
async function createWatchPaths(dirname) {
|
|
14
15
|
const graph = await (0, devkit_1.createProjectGraphAsync)();
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare
|
|
3
|
-
export declare function warnRemixBuildExecutorDeprecation(): void;
|
|
4
|
-
export declare function warnRemixServeExecutorDeprecation(): void;
|
|
1
|
+
export declare const REMIX_DEPRECATION_MESSAGE = "@nx/remix is deprecated and will be removed in Nx 25. Migrate to React Router with @nx/react. See https://nx.dev/docs/technologies/react/remix/introduction for migration instructions.";
|
|
2
|
+
export declare function warnRemixDeprecation(): void;
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.warnRemixServeExecutorDeprecation = warnRemixServeExecutorDeprecation;
|
|
3
|
+
exports.REMIX_DEPRECATION_MESSAGE = void 0;
|
|
4
|
+
exports.warnRemixDeprecation = warnRemixDeprecation;
|
|
6
5
|
const devkit_1 = require("@nx/devkit");
|
|
7
|
-
// TODO(
|
|
8
|
-
//
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
devkit_1.logger.warn(exports.REMIX_SERVE_EXECUTOR_DEPRECATION_MESSAGE);
|
|
6
|
+
// TODO(v25): Remove @nx/remix entirely - the plugin (createNodes), createWatchPaths,
|
|
7
|
+
// plugins/component-testing and the convert-to-inferred generator.
|
|
8
|
+
exports.REMIX_DEPRECATION_MESSAGE = '@nx/remix is deprecated and will be removed in Nx 25. Migrate to React Router with @nx/react. See https://nx.dev/docs/technologies/react/remix/introduction for migration instructions.';
|
|
9
|
+
let warned = false;
|
|
10
|
+
function warnRemixDeprecation() {
|
|
11
|
+
if (!warned) {
|
|
12
|
+
devkit_1.logger.warn(exports.REMIX_DEPRECATION_MESSAGE);
|
|
13
|
+
warned = true;
|
|
14
|
+
}
|
|
17
15
|
}
|
|
@@ -1,20 +1,2 @@
|
|
|
1
|
-
import { Tree } from '@nx/devkit';
|
|
2
|
-
export declare const nxVersion: any;
|
|
3
|
-
export declare const minSupportedRemixVersion = "2.0.0";
|
|
1
|
+
import { type Tree } from '@nx/devkit';
|
|
4
2
|
export declare function assertSupportedRemixVersion(tree: Tree): void;
|
|
5
|
-
export declare const remixVersion = "^2.17.3";
|
|
6
|
-
export declare const isbotVersion = "^4.4.0";
|
|
7
|
-
export declare const reactVersion = "^18.2.0";
|
|
8
|
-
export declare const reactDomVersion = "^18.2.0";
|
|
9
|
-
export declare const typesReactVersion = "^18.2.0";
|
|
10
|
-
export declare const typesReactDomVersion = "^18.2.0";
|
|
11
|
-
export declare const eslintVersion = "^9.8.0";
|
|
12
|
-
export declare const typescriptVersion = "~5.9.2";
|
|
13
|
-
export declare const postcssVersion = "^8.4.38";
|
|
14
|
-
export declare const autoprefixerVersion = "^10.4.19";
|
|
15
|
-
export declare const testingLibraryReactVersion = "^14.1.2";
|
|
16
|
-
export declare const testingLibraryJestDomVersion = "6.4.2";
|
|
17
|
-
export declare const testingLibraryDomVersion = "^10.4.0";
|
|
18
|
-
export declare const testingLibraryUserEventsVersion = "^14.5.2";
|
|
19
|
-
export declare const viteVersion = "^6.0.0";
|
|
20
|
-
export declare function getRemixVersion(tree: Tree): string;
|
|
@@ -1,34 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.viteVersion = exports.testingLibraryUserEventsVersion = exports.testingLibraryDomVersion = exports.testingLibraryJestDomVersion = exports.testingLibraryReactVersion = exports.autoprefixerVersion = exports.postcssVersion = exports.typescriptVersion = exports.eslintVersion = exports.typesReactDomVersion = exports.typesReactVersion = exports.reactDomVersion = exports.reactVersion = exports.isbotVersion = exports.remixVersion = exports.minSupportedRemixVersion = exports.nxVersion = void 0;
|
|
4
3
|
exports.assertSupportedRemixVersion = assertSupportedRemixVersion;
|
|
5
|
-
exports.getRemixVersion = getRemixVersion;
|
|
6
|
-
const devkit_1 = require("@nx/devkit");
|
|
7
|
-
const path_1 = require("path");
|
|
8
4
|
const internal_1 = require("@nx/devkit/internal");
|
|
9
|
-
exports.nxVersion = require((0, path_1.join)('@nx/remix', 'package.json')).version;
|
|
10
|
-
// @nx/remix supports Remix v2 only. React Router v7 (the successor to Remix) is
|
|
11
|
-
// handled by @nx/react. The floor rejects Remix v1; v2 is the only supported major.
|
|
12
|
-
exports.minSupportedRemixVersion = '2.0.0';
|
|
13
5
|
function assertSupportedRemixVersion(tree) {
|
|
14
|
-
(0, internal_1.assertSupportedPackageVersion)(tree, '@remix-run/dev',
|
|
15
|
-
}
|
|
16
|
-
exports.remixVersion = '^2.17.3';
|
|
17
|
-
exports.isbotVersion = '^4.4.0';
|
|
18
|
-
exports.reactVersion = '^18.2.0';
|
|
19
|
-
exports.reactDomVersion = '^18.2.0';
|
|
20
|
-
exports.typesReactVersion = '^18.2.0';
|
|
21
|
-
exports.typesReactDomVersion = '^18.2.0';
|
|
22
|
-
exports.eslintVersion = '^9.8.0';
|
|
23
|
-
exports.typescriptVersion = '~5.9.2';
|
|
24
|
-
exports.postcssVersion = '^8.4.38';
|
|
25
|
-
exports.autoprefixerVersion = '^10.4.19';
|
|
26
|
-
exports.testingLibraryReactVersion = '^14.1.2';
|
|
27
|
-
// TODO(colum): Unpin this when @testing-library/jest-dom pushes a fix
|
|
28
|
-
exports.testingLibraryJestDomVersion = '6.4.2';
|
|
29
|
-
exports.testingLibraryDomVersion = '^10.4.0';
|
|
30
|
-
exports.testingLibraryUserEventsVersion = '^14.5.2';
|
|
31
|
-
exports.viteVersion = '^6.0.0';
|
|
32
|
-
function getRemixVersion(tree) {
|
|
33
|
-
return ((0, devkit_1.getDependencyVersionFromPackageJson)(tree, '@remix-run/dev') ?? exports.remixVersion);
|
|
6
|
+
(0, internal_1.assertSupportedPackageVersion)(tree, '@remix-run/dev', '2.0.0');
|
|
34
7
|
}
|
package/generators.json
CHANGED
|
@@ -2,89 +2,12 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/schema",
|
|
3
3
|
"name": "NxRemix",
|
|
4
4
|
"version": "0.0.1",
|
|
5
|
-
"extends": ["@nx/react"],
|
|
6
5
|
"generators": {
|
|
7
|
-
"preset": {
|
|
8
|
-
"implementation": "./dist/src/generators/preset/preset.impl",
|
|
9
|
-
"schema": "./dist/src/generators/preset/schema.json",
|
|
10
|
-
"description": "Generate a new Remix workspace",
|
|
11
|
-
"hidden": true
|
|
12
|
-
},
|
|
13
|
-
"setup": {
|
|
14
|
-
"implementation": "./dist/src/generators/setup/setup.impl",
|
|
15
|
-
"schema": "./dist/src/generators/setup/schema.json",
|
|
16
|
-
"description": "Setup a Remix in an existing workspace",
|
|
17
|
-
"hidden": true
|
|
18
|
-
},
|
|
19
|
-
"application": {
|
|
20
|
-
"implementation": "./dist/src/generators/application/application.impl#remixApplicationGeneratorInternal",
|
|
21
|
-
"schema": "./dist/src/generators/application/schema.json",
|
|
22
|
-
"description": "Generate a new Remix application",
|
|
23
|
-
"aliases": ["app"],
|
|
24
|
-
"x-type": "application"
|
|
25
|
-
},
|
|
26
|
-
"cypress-component-configuration": {
|
|
27
|
-
"implementation": "./dist/src/generators/cypress-component-configuration/cypress-component-configuration.impl#cypressComponentConfigurationGeneratorInternal",
|
|
28
|
-
"schema": "./dist/src/generators/cypress-component-configuration/schema.json",
|
|
29
|
-
"description": "Generate a Cypress Component Testing configuration for a Remix project"
|
|
30
|
-
},
|
|
31
|
-
"library": {
|
|
32
|
-
"implementation": "./dist/src/generators/library/library.impl#remixLibraryGeneratorInternal",
|
|
33
|
-
"schema": "./dist/src/generators/library/schema.json",
|
|
34
|
-
"description": "Generate a new library",
|
|
35
|
-
"aliases": ["lib"],
|
|
36
|
-
"x-type": "library"
|
|
37
|
-
},
|
|
38
|
-
"init": {
|
|
39
|
-
"implementation": "./dist/src/generators/init/init#remixInitGeneratorInternal",
|
|
40
|
-
"schema": "./dist/src/generators/init/schema.json",
|
|
41
|
-
"description": "Initialize the `@nx/remix` plugin.",
|
|
42
|
-
"hidden": true
|
|
43
|
-
},
|
|
44
|
-
"route": {
|
|
45
|
-
"implementation": "./dist/src/generators/route/route.impl",
|
|
46
|
-
"schema": "./dist/src/generators/route/schema.json",
|
|
47
|
-
"description": "Generate a new route"
|
|
48
|
-
},
|
|
49
|
-
"resource-route": {
|
|
50
|
-
"implementation": "./dist/src/generators/resource-route/resource-route.impl",
|
|
51
|
-
"schema": "./dist/src/generators/resource-route/schema.json",
|
|
52
|
-
"description": "Generate a new resource route"
|
|
53
|
-
},
|
|
54
|
-
"action": {
|
|
55
|
-
"implementation": "./dist/src/generators/action/action.impl",
|
|
56
|
-
"schema": "./dist/src/generators/action/schema.json",
|
|
57
|
-
"description": "Add an action function to an existing route"
|
|
58
|
-
},
|
|
59
|
-
"loader": {
|
|
60
|
-
"implementation": "./dist/src/generators/loader/loader.impl",
|
|
61
|
-
"schema": "./dist/src/generators/loader/schema.json",
|
|
62
|
-
"description": "Add a loader function to an existing route"
|
|
63
|
-
},
|
|
64
|
-
"style": {
|
|
65
|
-
"implementation": "./dist/src/generators/style/style.impl",
|
|
66
|
-
"schema": "./dist/src/generators/style/schema.json",
|
|
67
|
-
"description": "Generates a new stylesheet and adds it to an existing route"
|
|
68
|
-
},
|
|
69
|
-
"storybook-configuration": {
|
|
70
|
-
"implementation": "./dist/src/generators/storybook-configuration/storybook-configuration.impl#remixStorybookConfiguration",
|
|
71
|
-
"schema": "./dist/src/generators/storybook-configuration/schema.json",
|
|
72
|
-
"description": "Generates a Storybook configuration for a Remix application"
|
|
73
|
-
},
|
|
74
|
-
"meta": {
|
|
75
|
-
"implementation": "./dist/src/generators/meta/meta.impl",
|
|
76
|
-
"schema": "./dist/src/generators/meta/schema.json",
|
|
77
|
-
"description": "Add a meta function to an existing route"
|
|
78
|
-
},
|
|
79
|
-
"error-boundary": {
|
|
80
|
-
"implementation": "./dist/src/generators/error-boundary/error-boundary.impl",
|
|
81
|
-
"schema": "./dist/src/generators/error-boundary/schema.json",
|
|
82
|
-
"description": "Add an ErrorBoundary to an existing route"
|
|
83
|
-
},
|
|
84
6
|
"convert-to-inferred": {
|
|
85
7
|
"factory": "./dist/src/generators/convert-to-inferred/convert-to-inferred",
|
|
86
8
|
"schema": "./dist/src/generators/convert-to-inferred/schema.json",
|
|
87
|
-
"description": "Convert existing Remix project(s) using `@nx/remix:*` executors to use `@nx/remix/plugin`. Defaults to migrating all projects. Pass '--project' to migrate only one target."
|
|
9
|
+
"description": "Convert existing Remix project(s) using `@nx/remix:*` executors to use `@nx/remix/plugin`. Defaults to migrating all projects. Pass '--project' to migrate only one target.",
|
|
10
|
+
"x-deprecated": "@nx/remix will be removed in Nx 25. Migrate to React Router with @nx/react."
|
|
88
11
|
}
|
|
89
12
|
}
|
|
90
13
|
}
|
package/migrations.json
CHANGED
|
@@ -10,6 +10,16 @@
|
|
|
10
10
|
"version": "23.1.0-beta.0",
|
|
11
11
|
"description": "Remove the unused @remix-run/eslint-config dependency (ESLint v8 only) that earlier Nx versions added but never wired into the generated lint setup.",
|
|
12
12
|
"implementation": "./dist/src/migrations/update-23-1-0/remove-remix-eslint-config"
|
|
13
|
+
},
|
|
14
|
+
"convert-to-inferred": {
|
|
15
|
+
"version": "24.0.0-beta.0",
|
|
16
|
+
"description": "Convert legacy Remix executors to inferred tasks. Remix v2 remains supported until Nx 25.",
|
|
17
|
+
"implementation": "./dist/src/migrations/update-24-0-0/convert-to-inferred"
|
|
18
|
+
},
|
|
19
|
+
"migrate-to-react-router": {
|
|
20
|
+
"version": "24.0.0-beta.0",
|
|
21
|
+
"description": "Migrate Remix v2 applications to React Router v7 with @nx/react, including Nx configuration and validation.",
|
|
22
|
+
"prompt": "./dist/src/migrations/update-24-0-0/migrate-to-react-router.md"
|
|
13
23
|
}
|
|
14
24
|
},
|
|
15
25
|
"packageJsonUpdates": {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/remix",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "24.0.0-beta.1",
|
|
4
|
+
"description": "Deprecated Remix v2 task inference for Nx. Generators and executors were removed in Nx 24, except convert-to-inferred. The remaining plugin will be removed in Nx 25. Migrate to React Router with @nx/react.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/nrwl/nx.git",
|
|
@@ -28,7 +28,6 @@
|
|
|
28
28
|
"dist",
|
|
29
29
|
"!dist/tsconfig.tsbuildinfo",
|
|
30
30
|
"migrations.json",
|
|
31
|
-
"executors.json",
|
|
32
31
|
"generators.json"
|
|
33
32
|
],
|
|
34
33
|
"typesVersions": {
|
|
@@ -48,36 +47,27 @@
|
|
|
48
47
|
}
|
|
49
48
|
},
|
|
50
49
|
"generators": "./generators.json",
|
|
51
|
-
"executors": "./executors.json",
|
|
52
50
|
"nx-migrations": {
|
|
53
51
|
"migrations": "./migrations.json",
|
|
54
52
|
"supportsOptionalMigrations": true
|
|
55
53
|
},
|
|
56
54
|
"dependencies": {
|
|
57
|
-
"@nx/devkit": "
|
|
58
|
-
"@nx/js": "
|
|
59
|
-
"
|
|
60
|
-
"@nx/web": "23.3.0",
|
|
61
|
-
"tslib": "^2.3.0",
|
|
62
|
-
"@phenomnomnominal/tsquery": "~6.2.0"
|
|
55
|
+
"@nx/devkit": "24.0.0-beta.1",
|
|
56
|
+
"@nx/js": "24.0.0-beta.1",
|
|
57
|
+
"tslib": "^2.3.0"
|
|
63
58
|
},
|
|
64
59
|
"devDependencies": {
|
|
65
|
-
"@nx/eslint": "
|
|
66
|
-
"nx": "
|
|
67
|
-
"@nx/vitest": "23.3.0"
|
|
60
|
+
"@nx/eslint": "24.0.0-beta.1",
|
|
61
|
+
"nx": "24.0.0-beta.1"
|
|
68
62
|
},
|
|
69
63
|
"peerDependencies": {
|
|
70
|
-
"@nx/cypress": "
|
|
71
|
-
"@nx/playwright": "23.3.0",
|
|
64
|
+
"@nx/cypress": "24.0.0-beta.1",
|
|
72
65
|
"@remix-run/dev": "^2.0.0"
|
|
73
66
|
},
|
|
74
67
|
"peerDependenciesMeta": {
|
|
75
68
|
"@nx/cypress": {
|
|
76
69
|
"optional": true
|
|
77
70
|
},
|
|
78
|
-
"@nx/playwright": {
|
|
79
|
-
"optional": true
|
|
80
|
-
},
|
|
81
71
|
"@remix-run/dev": {
|
|
82
72
|
"optional": true
|
|
83
73
|
}
|
|
@@ -93,7 +83,6 @@
|
|
|
93
83
|
},
|
|
94
84
|
"./package.json": "./package.json",
|
|
95
85
|
"./generators.json": "./generators.json",
|
|
96
|
-
"./executors.json": "./executors.json",
|
|
97
86
|
"./migrations.json": "./migrations.json",
|
|
98
87
|
"./generators": {
|
|
99
88
|
"@nx/nx-source": "./generators.ts",
|