This PR removes deprecated code that's been slated for removal in Nx 19 - mentioned as `TODO(v19)` comments. ## Breaking Changes - **CNW:** `create-nx-workspace` no longer support `--preset=empty` and `--preset=core`, use `--preset=apps` and `--preset=npm` respectively. Deprecated in Nx 15.9. - **Next.js:** `NX_` environment variables are no longer bundled into Next.js apps, use `NEXT_PUBLIC` instead. Deprecated in Nx 16.8. - **Webpack, Storybook, Esbuild:** `NX_` environment variables are no longer bundled into browser bundles, use `NX_PUBLIC` instead. This removes the possibility of intentional bundling of `NX_` variables. Deprecated in Nx 18. - **Cypress:** `cypressComponentConfiguration` generator removed from `@nx/cypress`, use `configurationGenerator`instead. Deprecated in Nx 16.8. - **Cypress:** `cypressProjectGenerator` generator removed from `@nx/cypress`, use `configurationGenerator` instead. Deprecated in Nx 15.9. - **Expo:** `withNxWebpack` removed from `@nx/expo`, use [metro bundler](https://docs.expo.dev/guides/customizing-metro/) (https://docs.expo.dev/guides/customizing-metro/) in app.json instead. There is a migration to handle this in Nx 19. Deprecated in Nx 15.8. ## Deferred to v20 - **JS:** `classProperties.loose` option removed from `@nx/js/babel` preset, use `loose` instead. Deprecated in Nx 17.0. - **ESLint:** Low priority task to "deviations from @typescript-eslint/recommended" for our lint rules. @JamesHenry will look at this later before Nx 20, but it is unimportant. - **React:** component testing does not work with Project Crystal, and we need the executor + built-in webpack configs to run CT. Will do a follow-up on this after Nx 19 release. Related issue: https://github.com/nrwl/nx/issues/21546 - **Next.js:** `withStylus` removal from `@nx/next`, use SASS instead. It hasn't worked, but we kept the file to throw an error when used. Deprecated in Nx 17.0. - **Next.js**: `@nx/next:component` and `@nx/next:page` generators to not derive the `components` and `app`/`pages` directory. Use `nx g @nx/next:component apps/myapp/components/button` instead. Deprecated in Nx 17.0. - **Webpack:** `isolatedConfig` option removal from `@nx/webpack:webpack` executor. There is a migration to handle this in Nx 19. Deprecated in in Nx 17.2. - **Angular:** `executeWebpackDevServerBuilder` removal from `@nx/angular/executors`, use `executeDevServerBuilder` instead. Deprecated in Nx 17.0.
461 lines
14 KiB
TypeScript
461 lines
14 KiB
TypeScript
import { assertTextOnPage } from './helpers';
|
|
import { test } from '@playwright/test';
|
|
|
|
const pages: Array<{ title: string; path: string }> = [
|
|
{ title: '@nx/angular', path: '/packages/angular' },
|
|
{
|
|
title: '@nx/angular:add-linting',
|
|
path: '/packages/angular/generators/add-linting',
|
|
},
|
|
{
|
|
title: '@nx/angular:application',
|
|
path: '/packages/angular/generators/application',
|
|
},
|
|
{
|
|
title: '@nx/angular:component',
|
|
path: '/packages/angular/generators/component',
|
|
},
|
|
{
|
|
title: '@nx/angular:component-cypress-spec',
|
|
path: '/packages/angular/generators/component-cypress-spec',
|
|
},
|
|
{
|
|
title: '@nx/angular:component-story',
|
|
path: '/packages/angular/generators/component-story',
|
|
},
|
|
{ title: '@nx/angular:init', path: '/packages/angular/generators/init' },
|
|
{
|
|
title: '@nx/angular:library',
|
|
path: '/packages/angular/generators/library',
|
|
},
|
|
{
|
|
title: '@nx/angular:library-secondary-entry-point',
|
|
path: '/packages/angular/generators/library-secondary-entry-point',
|
|
},
|
|
{
|
|
title: '@nx/angular:remote',
|
|
path: '/packages/angular/generators/remote',
|
|
},
|
|
{ title: '@nx/angular:move', path: '/packages/angular/generators/move' },
|
|
{
|
|
title: '@nx/angular:convert-to-with-mf',
|
|
path: '/packages/angular/generators/convert-to-with-mf',
|
|
},
|
|
{ title: '@nx/angular:host', path: '/packages/angular/generators/host' },
|
|
{
|
|
title: '@nx/angular:ng-add',
|
|
path: '/packages/angular/generators/ng-add',
|
|
},
|
|
{ title: '@nx/angular:ngrx', path: '/packages/angular/generators/ngrx' },
|
|
{ title: '@nx/angular:scam', path: '/packages/angular/generators/scam' },
|
|
{
|
|
title: '@nx/angular:scam-directive',
|
|
path: '/packages/angular/generators/scam-directive',
|
|
},
|
|
{
|
|
title: '@nx/angular:scam-pipe',
|
|
path: '/packages/angular/generators/scam-pipe',
|
|
},
|
|
{
|
|
title: '@nx/angular:setup-mf',
|
|
path: '/packages/angular/generators/setup-mf',
|
|
},
|
|
{
|
|
title: '@nx/angular:setup-tailwind',
|
|
path: '/packages/angular/generators/setup-tailwind',
|
|
},
|
|
{
|
|
title: '@nx/angular:stories',
|
|
path: '/packages/angular/generators/stories',
|
|
},
|
|
{
|
|
title: '@nx/',
|
|
path: '/packages/angular/generators/storybook-configuration',
|
|
},
|
|
{
|
|
title: '@nx/angular:web-worker',
|
|
path: '/packages/angular/generators/web-worker',
|
|
},
|
|
{
|
|
title: '@nx/angular:delegate-build',
|
|
path: '/packages/angular/executors/delegate-build',
|
|
},
|
|
{
|
|
title: '@nx/angular:ng-packagr-lite',
|
|
path: '/packages/angular/executors/ng-packagr-lite',
|
|
},
|
|
{
|
|
title: '@nx/angular:package',
|
|
path: '/packages/angular/executors/package',
|
|
},
|
|
{ title: 'create-nx-plugin', path: '/packages/create-nx-plugin' },
|
|
{
|
|
title: 'create-nx-workspace',
|
|
path: '/packages/create-nx-workspace',
|
|
},
|
|
{ title: '@nx/cypress', path: '/packages/cypress' },
|
|
{ title: '@nx/cypress:init', path: '/packages/cypress/generators/init' },
|
|
{
|
|
title: '@nx/cypress:cypress',
|
|
path: '/packages/cypress/executors/cypress',
|
|
},
|
|
{ title: '@nx/detox', path: '/packages/detox' },
|
|
{ title: '@nx/detox:init', path: '/packages/detox/generators/init' },
|
|
{
|
|
title: '@nx/detox:application',
|
|
path: '/packages/detox/generators/application',
|
|
},
|
|
{ title: '@nx/detox:build', path: '/packages/detox/executors/build' },
|
|
{ title: '@nx/detox:test', path: '/packages/detox/executors/test' },
|
|
{ title: '@nx/devkit', path: '/packages/devkit' },
|
|
{ title: '@nx/esbuild', path: '/packages/esbuild' },
|
|
{
|
|
title: '@nx/esbuild:esbuild',
|
|
path: '/packages/esbuild/executors/esbuild',
|
|
},
|
|
{ title: '@nx/eslint-plugin', path: '/packages/eslint-plugin' },
|
|
{ title: '@nx/expo', path: '/packages/expo' },
|
|
{
|
|
title: '@nx/expo:init',
|
|
path: '/packages/expo/generators/init',
|
|
},
|
|
{
|
|
title: '@nx/expo:application',
|
|
path: '/packages/expo/generators/application',
|
|
},
|
|
{
|
|
title: '@nx/expo:library',
|
|
path: '/packages/expo/generators/library',
|
|
},
|
|
{
|
|
title: '@nx/expo:component',
|
|
path: '/packages/expo/generators/component',
|
|
},
|
|
{
|
|
title: '@nx/expo:start',
|
|
path: '/packages/expo/executors/start',
|
|
},
|
|
{
|
|
title: '@nx/expo:sync-deps',
|
|
path: '/packages/expo/executors/sync-deps',
|
|
},
|
|
{
|
|
title: '@nx/expo:ensure-symlink',
|
|
path: '/packages/expo/executors/ensure-symlink',
|
|
},
|
|
{ title: '@nx/express', path: '/packages/express' },
|
|
{ title: '@nx/express:init', path: '/packages/express/generators/init' },
|
|
{
|
|
title: '@nx/express:application',
|
|
path: '/packages/express/generators/application',
|
|
},
|
|
{ title: '@nx/jest', path: '/packages/jest' },
|
|
{ title: '@nx/jest:init', path: '/packages/jest/generators/init' },
|
|
{
|
|
title: '@nx/jest:configuration',
|
|
path: '/packages/jest/generators/configuration',
|
|
},
|
|
{ title: '@nx/jest', path: '/packages/jest/executors/jest' },
|
|
{ title: '@nx/js', path: '/packages/js' },
|
|
{ title: '@nx/js:library', path: '/packages/js/generators/library' },
|
|
{ title: '@nx/js:init', path: '/packages/js/generators/init' },
|
|
{
|
|
title: '@nx/js:convert-to-swc',
|
|
path: '/packages/js/generators/convert-to-swc',
|
|
},
|
|
{ title: '@nx/js:tsc', path: '/packages/js/executors/tsc' },
|
|
{ title: '@nx/js:swc', path: '/packages/js/executors/swc' },
|
|
{ title: '@nx/eslint', path: '/packages/eslint' },
|
|
{
|
|
title: '@nx/eslint:workspace-rules-project',
|
|
path: '/packages/eslint/generators/workspace-rules-project',
|
|
},
|
|
{
|
|
title: '@nx/eslint',
|
|
path: '/packages/eslint/generators/workspace-rule',
|
|
},
|
|
{ title: '@nx/eslint', path: '/packages/eslint/executors/lint' },
|
|
{ title: '@nx/nest', path: '/packages/nest' },
|
|
{
|
|
title: '@nx/nest:application',
|
|
path: '/packages/nest/generators/application',
|
|
},
|
|
{ title: '@nx/nest:init', path: '/packages/nest/generators/init' },
|
|
{ title: '@nx/nest:library', path: '/packages/nest/generators/library' },
|
|
{ title: '@nx/nest:class', path: '/packages/nest/generators/class' },
|
|
{
|
|
title: '@nx/nest:controller',
|
|
path: '/packages/nest/generators/controller',
|
|
},
|
|
{
|
|
title: '@nx/nest:decorator',
|
|
path: '/packages/nest/generators/decorator',
|
|
},
|
|
{ title: '@nx/nest:filter', path: '/packages/nest/generators/filter' },
|
|
{ title: '@nx/nest:gateway', path: '/packages/nest/generators/gateway' },
|
|
{ title: '@nx/nest:guard', path: '/packages/nest/generators/guard' },
|
|
{
|
|
title: '@nx/nest:interceptor',
|
|
path: '/packages/nest/generators/interceptor',
|
|
},
|
|
{
|
|
title: '@nx/nest:interface',
|
|
path: '/packages/nest/generators/interface',
|
|
},
|
|
{
|
|
title: '@nx/nest:middleware',
|
|
path: '/packages/nest/generators/middleware',
|
|
},
|
|
{ title: '@nx/nest:module', path: '/packages/nest/generators/module' },
|
|
{ title: '@nx/nest:pipe', path: '/packages/nest/generators/pipe' },
|
|
{
|
|
title: '@nx/nest:provider',
|
|
path: '/packages/nest/generators/provider',
|
|
},
|
|
{
|
|
title: '@nx/nest:resolver',
|
|
path: '/packages/nest/generators/resolver',
|
|
},
|
|
{
|
|
title: '@nx/nest:resource',
|
|
path: '/packages/nest/generators/resource',
|
|
},
|
|
{ title: '@nx/nest:service', path: '/packages/nest/generators/service' },
|
|
{ title: '@nx/next', path: '/packages/next' },
|
|
{ title: '@nx/next:init', path: '/packages/next/generators/init' },
|
|
{
|
|
title: '@nx/next:application',
|
|
path: '/packages/next/generators/application',
|
|
},
|
|
{ title: '@nx/next:page', path: '/packages/next/generators/page' },
|
|
{
|
|
title: '@nx/next:component',
|
|
path: '/packages/next/generators/component',
|
|
},
|
|
{ title: '@nx/next:library', path: '/packages/next/generators/library' },
|
|
{ title: '@nx/next:build', path: '/packages/next/executors/build' },
|
|
{ title: '@nx/next:server', path: '/packages/next/executors/server' },
|
|
{ title: '@nx/next:export', path: '/packages/next/executors/export' },
|
|
{ title: '@nx/node', path: '/packages/node' },
|
|
{ title: '@nx/node:init', path: '/packages/node/generators/init' },
|
|
{
|
|
title: '@nx/node:application',
|
|
path: '/packages/node/generators/application',
|
|
},
|
|
{ title: '@nx/node:library', path: '/packages/node/generators/library' },
|
|
{ title: 'nx', path: '/packages/nx' },
|
|
{ title: 'nx:noop', path: '/packages/nx/executors/noop' },
|
|
{
|
|
title: 'nx:run-commands',
|
|
path: '/packages/nx/executors/run-commands',
|
|
},
|
|
{ title: 'nx:run-script', path: '/packages/nx/executors/run-script' },
|
|
{ title: 'plugin', path: '/packages/plugin' },
|
|
{
|
|
title: '@nx/plugin:plugin',
|
|
path: '/packages/plugin/generators/plugin',
|
|
},
|
|
{
|
|
title: '@nx/plugin:e2e-project',
|
|
path: '/packages/plugin/generators/e2e-project',
|
|
},
|
|
{
|
|
title: '@nx/plugin:migration',
|
|
path: '/packages/plugin/generators/migration',
|
|
},
|
|
{
|
|
title: '@nx/plugin:generator',
|
|
path: '/packages/plugin/generators/generator',
|
|
},
|
|
{
|
|
title: '@nx/plugin:executor',
|
|
path: '/packages/plugin/generators/executor',
|
|
},
|
|
{ title: '@nx/react', path: '/packages/react' },
|
|
{ title: '@nx/react:init', path: '/packages/react/generators/init' },
|
|
{
|
|
title: '@nx/react:application',
|
|
path: '/packages/react/generators/application',
|
|
},
|
|
{
|
|
title: '@nx/react:library',
|
|
path: '/packages/react/generators/library',
|
|
},
|
|
{
|
|
title: '@nx/react:component',
|
|
path: '/packages/react/generators/component',
|
|
},
|
|
{ title: '@nx/react:redux', path: '/packages/react/generators/redux' },
|
|
{
|
|
title: '@nx/react:storybook-configuration',
|
|
path: '/packages/react/generators/storybook-configuration',
|
|
},
|
|
{
|
|
title: '@nx/react:component-story',
|
|
path: '/packages/react/generators/component-story',
|
|
},
|
|
{
|
|
title: '@nx/react:stories',
|
|
path: '/packages/react/generators/stories',
|
|
},
|
|
{
|
|
title: '@nx/react:component-cypress-spec',
|
|
path: '/packages/react/generators/component-cypress-spec',
|
|
},
|
|
{ title: '@nx/react:hook', path: '/packages/react/generators/hook' },
|
|
{ title: '@nx/react:host', path: '/packages/react/generators/host' },
|
|
{ title: '@nx/react:remote', path: '/packages/react/generators/remote' },
|
|
{
|
|
title: '@nx/react:module-federation-dev-server',
|
|
path: '/packages/react/executors/module-federation-dev-server',
|
|
},
|
|
{ title: '@nx/react-native', path: '/packages/react-native' },
|
|
{
|
|
title: '@nx/react-native:init',
|
|
path: '/packages/react-native/generators/init',
|
|
},
|
|
{
|
|
title: '@nx/react-native:application',
|
|
path: '/packages/react-native/generators/application',
|
|
},
|
|
{
|
|
title: '@nx/react-native:library',
|
|
path: '/packages/react-native/generators/library',
|
|
},
|
|
{
|
|
title: '@nx/react-native:component',
|
|
path: '/packages/react-native/generators/component',
|
|
},
|
|
{
|
|
title: '@nx/',
|
|
path: '/packages/react-native/generators/storybook-configuration',
|
|
},
|
|
{
|
|
title: '@nx/react-native:component-story',
|
|
path: '/packages/react-native/generators/component-story',
|
|
},
|
|
{
|
|
title: '@nx/react-native:stories',
|
|
path: '/packages/react-native/generators/stories',
|
|
},
|
|
{
|
|
title: '@nx/react-native:upgrade-native',
|
|
path: '/packages/react-native/generators/upgrade-native',
|
|
},
|
|
{
|
|
title: '@nx/react-native:run-android',
|
|
path: '/packages/react-native/executors/run-android',
|
|
},
|
|
{
|
|
title: '@nx/react-native:run-ios',
|
|
path: '/packages/react-native/executors/run-ios',
|
|
},
|
|
{
|
|
title: '@nx/react-native:bundle',
|
|
path: '/packages/react-native/executors/bundle',
|
|
},
|
|
{
|
|
title: '@nx/react-native:build-android',
|
|
path: '/packages/react-native/executors/build-android',
|
|
},
|
|
{
|
|
title: '@nx/react-native:start',
|
|
path: '/packages/react-native/executors/start',
|
|
},
|
|
{
|
|
title: '@nx/react-native:sync-deps',
|
|
path: '/packages/react-native/executors/sync-deps',
|
|
},
|
|
{
|
|
title: '@nx/react-native:ensure-symlink',
|
|
path: '/packages/react-native/executors/ensure-symlink',
|
|
},
|
|
{
|
|
title: '@nx/react-native:storybook',
|
|
path: '/packages/react-native/executors/storybook',
|
|
},
|
|
{ title: '@nx/storybook', path: '/packages/storybook' },
|
|
{
|
|
title: '@nx/storybook:init',
|
|
path: '/packages/storybook/generators/init',
|
|
},
|
|
{
|
|
title: '@nx/storybook:configuration',
|
|
path: '/packages/storybook/generators/configuration',
|
|
},
|
|
{
|
|
title: '@nx/storybook:cypress-project',
|
|
path: '/packages/storybook/generators/cypress-project',
|
|
},
|
|
{
|
|
title: '@nx/storybook:storybook',
|
|
path: '/packages/storybook/executors/storybook',
|
|
},
|
|
{
|
|
title: '@nx/storybook:build',
|
|
path: '/packages/storybook/executors/build',
|
|
},
|
|
{ title: '@nx/web', path: '/packages/web' },
|
|
{ title: '@nx/web:init', path: '/packages/web/generators/init' },
|
|
{
|
|
title: '@nx/web:application',
|
|
path: '/packages/web/generators/application',
|
|
},
|
|
{
|
|
title: '@nx/webpack:webpack',
|
|
path: '/packages/webpack/executors/webpack',
|
|
},
|
|
{ title: '@nx/rollup:rollup', path: '/packages/rollup/executors/rollup' },
|
|
{
|
|
title: '@nx/webpack:dev-server',
|
|
path: '/packages/webpack/executors/dev-server',
|
|
},
|
|
{
|
|
title: '@nx/web:file-server',
|
|
path: '/packages/web/executors/file-server',
|
|
},
|
|
{
|
|
title: '@nx/workspace:preset',
|
|
path: '/packages/workspace/generators/preset',
|
|
},
|
|
{
|
|
title: '@nx/workspace:move',
|
|
path: '/packages/workspace/generators/move',
|
|
},
|
|
{
|
|
title: '@nx/workspace:remove',
|
|
path: '/packages/workspace/generators/remove',
|
|
},
|
|
{
|
|
title: '@nx/workspace:new',
|
|
path: '/packages/workspace/generators/new',
|
|
},
|
|
{
|
|
title: '@nx/workspace:run-command',
|
|
path: '/packages/workspace/generators/run-commands',
|
|
},
|
|
{
|
|
title: '@nx/workspace:fix-configuration',
|
|
path: '/packages/workspace/generators/fix-configuration',
|
|
},
|
|
{
|
|
title: '@nx/workspace:npm-package',
|
|
path: '/packages/workspace/generators/npm-package',
|
|
},
|
|
{
|
|
title: '@nx/workspace:ci-workflow',
|
|
path: '/packages/workspace/generators/ci-workflow',
|
|
},
|
|
{
|
|
title: '@nx/workspace:counter',
|
|
path: '/packages/workspace/executors/counter',
|
|
},
|
|
];
|
|
/**
|
|
* Asserting all the packages pages are accounted for and accessible.
|
|
* Generation of the pages is manual since we want to make sure the change is intended.
|
|
*/
|
|
test.describe('nx-dev: Packages Section', () => {
|
|
pages.forEach((page) => assertTextOnPage(page.path, page.title));
|
|
});
|