Compare commits

...

45 Commits

Author SHA1 Message Date
nx-cloud[bot] e93a029398 fix(e2e): only install required @nx/js package for js-executor-tsc test 2025-07-06 21:27:19 +00:00
Nicholas Cunningham aaeca8bd3d fix(e2e): update e2e command to include all e2e tests 2025-07-05 00:42:32 -06:00
nx-cloud[bot] 61af0050ac fix(e2e): ensure correct package manager is used in workspace creation and reset 2025-07-05 00:09:16 -06:00
Nicholas Cunningham 65d0f81e9e fix(testing): add core pack env flags 2025-07-04 23:37:48 -06:00
Nicholas Cunningham 1244fa787a chore(core): skip packages for resolution when creating workspaces 2025-07-04 23:22:34 -06:00
Nicholas Cunningham 339d0a3df1 fix(core): update workspace export type 2025-07-04 21:25:46 -06:00
Nicholas Cunningham 7e15077515 chore(core): add symlink log 2025-07-04 16:54:47 -06:00
Nicholas Cunningham 79a0a52ec0 chore(testing): add more logs for newProejct creation 2025-07-04 14:57:51 -06:00
Nicholas Cunningham 41480f817d fix(core): for pnpm the installation can be at .pnpm so should check that path as well when using ts solutions 2025-07-04 14:23:26 -06:00
Nicholas Cunningham 98ccd09966 chore(core): add more logs for in-process-loader to indentify a fix 2025-07-04 13:45:41 -06:00
Nicholas Cunningham 9d48ea162d fix(core): add workspace path validation to getNxRequirePaths if the workspace is different then we should not include it. 2025-07-04 13:17:19 -06:00
Nicholas Cunningham ff98c24932 chore(plugin): add logging for package.json reading 2025-07-04 11:17:43 -06:00
Nicholas Cunningham 189f44014c chore(core): enhance logging and error handling in preset generator 2025-07-04 10:31:16 -06:00
FrozenPandaz b4f583ad1f fix(e2e): streamline CI workflow and add debugging output
- Remove documentation check and other non-essential CI steps
- Focus on e2e testing for vite integration
- Add console.log for error debugging in child-process-utils
2025-07-03 20:00:18 -04:00
Nicholas Cunningham 33bf58a6dd fix(testing): revert changes back to how master has them 2025-07-03 14:52:34 -06:00
Nicholas Cunningham e14c1c692f fix(core): update import paths to use @nx/e2e-utils and include src/**/*.ts in tsconfig.spec.json 2025-07-03 14:52:34 -06:00
Nicholas Cunningham 7d5b198240 chore(core): fix e2e backup path handling for package managers and presets 2025-07-03 14:52:34 -06:00
nx-cloud[bot] b20d7173e4 fix: remove duplicate --verbose flag in runCreateWorkspace command 2025-07-03 14:52:34 -06:00
Nicholas Cunningham 6d19e77d79 fix(core): remove unused package references from tsconfig files 2025-07-03 14:52:34 -06:00
Nicholas Cunningham 4ba498ef2f fix(core): update jest executor and options in application spec files
- update resolver for Jest workers and ensure test environment setup
- update tools/embeddings pacakge to not be type module
2025-07-03 14:52:34 -06:00
Nicholas Cunningham f9e746fcb0 fix(core): streamline package.json dependencies across e2e projects
- Removed unnecessary dependencies from various e2e project package.json files, retaining only "@nx/e2e-utils".
- Updated import paths in test files to use "@nx/e2e-utils" instead of local utils.
- Added TypeScript configuration file cleanup script to remove tsconfig and tsbuildinfo files from output directories.
- Modified patched Jest resolver to skip workspace resolution for e2e tests, using the default resolver instead.
2025-07-03 14:50:08 -06:00
Nicholas Cunningham dc67eb7cfe fix(nx-dev): fix nx-dev app router pages and blog ordering in production
- Fix app router index pages returning 404 by using revalidate instead of static generation

- Fix blog post random ordering by using deterministic dates in blog API
2025-07-03 14:50:07 -06:00
Nicholas Cunningham c0e9258d34 fix(core): revert generator factories in rollup, rsbuild, rspack, storybook, vite, webpack, and vue packages
- remove jest from devDependencies for  packages

-  update legacy post-build executor to accept custom main and types fields in package.json

- Update nx-dev deploy production task to copy artifacts to dist/nx-dev/nx-dev
2025-07-03 14:50:07 -06:00
Nicholas Cunningham dd8c5810bf fix(node): update the node app generator to append to test target instead of overwriting. 2025-07-03 14:50:07 -06:00
Nicholas Cunningham 5a62f325c6 feat(core): replace copy-assets and add-package-json-fields executor with legacy-post-build executor
- Removed the copy-assets executor
- Removed add-package-json-fields  executor
- Add legacy-post-build executor that combines asset copying and package.json field updates.
2025-07-03 14:50:07 -06:00
Nicholas Cunningham 412ca99a7c fix(core): update import paths to use @nx/e2e-utils 2025-07-03 14:50:07 -06:00
Nicholas Cunningham 411d3b4d23 fix(core): update tsconfig files to extend base config and include JSX support 2025-07-03 14:50:07 -06:00
Nicholas Cunningham ccc1d43153 chore(angular): add @nx/cypress dependency and update tsconfig references 2025-07-03 14:50:06 -06:00
Nicholas Cunningham b263047f33 chore(core): update scripts to not check node_modules 2025-07-03 14:50:06 -06:00
Nicholas Cunningham 17f7c1f75c fix(core): update package.json to ensure it is private for conformance check 2025-07-03 14:50:06 -06:00
Nicholas Cunningham ff3c6b0dbb chore(core): update conformance rule paths and remove debugging logs 2025-07-03 14:50:06 -06:00
Nicholas Cunningham 1ae37ac027 fix(core): update documentation based on lint fixes for generators 2025-07-03 14:50:06 -06:00
Nicholas Cunningham 16f89ce864 fix(core): rebase with master 2025-07-03 14:50:06 -06:00
Nicholas Cunningham 1c57697202 fix(core): unify tsconfig extensions to use tsconfig.base.json across all packages 2025-07-03 14:50:06 -06:00
Nicholas Cunningham 5025902c2b feat(core): add-package-json-fields executor to enhance package.json management
- Introduced a new executor `add-package-json-fields` to add required fields like `types` and `type` to package.json files of built packages.
- Updated project.json files across multiple packages to include the new executor in their build processes.
- Modified the `copy-assets` executor to ensure it runs before the new executor.
- Enhanced the `nx-release-publish` target to depend on the new executor for better package management.
- Updated package.json files to ensure correct typings and type fields are set for various packages.
2025-07-03 14:50:06 -06:00
Nicholas Cunningham 7c0e4ba4ac fix(core): enabled e2e test in ts solution
- Adjust angular copying assets
2025-07-03 14:50:06 -06:00
Nicholas Cunningham 5a1429d4e5 chore(core): update package.json files to include jest as a devDependency across multiple packages
- update ESLint configuration files to extend from .eslintrc.json and ignore node_modules

refactor: update generator factory paths in generators.json files for consistency

docs: enhance descriptions in schema.json files for better clarity on asset copying

chore: add node_modules to ignore patterns in various ESLint configurations for ts solution this is necessary as the base eslint ignores is not applied.
2025-07-03 14:50:05 -06:00
Nicholas Cunningham c8cbb3ae0d feat(core): Add typecheck target and decouple devkit from graph libs 2025-07-03 14:50:05 -06:00
Nicholas Cunningham 5e59170b70 feat(core): update pnpm documentation scripts to work inside ts solution workspace.
- Next.js fix event listener callback for router.on events
2025-07-03 14:50:05 -06:00
Nicholas Cunningham d2a9966f81 feat(core): remove jest from devDependencies and rely on the root package.json resolution
- Remove old jasmine types that were clashing with jest types
2025-07-03 14:50:05 -06:00
Nicholas Cunningham 2d318c3911 feat(core): enable tesing for ts solution
- Updated the custom Jest resolver to support TypeScript source resolution for specific Nx workspace packages.

- Added module name mappings in Jest configurations for tools and workspace plugins to point to the correct package paths.
2025-07-03 14:50:02 -06:00
Nicholas Cunningham ad978816a2 feat(core): enable nx-release to work with ts solution
- Marked all packages in the graph and nx-dev directories as private in their respective package.json files.
- Updated webpack output paths from 'build' to 'dist' in the graph/client webpack configuration.
- Adjusted various project.json files to change output paths from 'build/packages' to 'dist/packages' for consistency.
- Modified scripts to reference the new 'dist' directory for package.json and storage paths.
2025-07-03 14:49:22 -06:00
Nicholas Cunningham e5441f0ef6 feat(core): Refactor build process and add copy-assets executor
- packages and nx-dev are using inferred plugins tsc/next

- updated project.json files for multiple packages to streamline build dependencies and tasks.
- introduced a new executor for copying assets, enhancing the build process.
- modified scripts for copying README and assets to use the new executor.
- Adjusted TypeScript configuration to support new executor and asset management.
- Removed unnecessary references and cleaned up code for better maintainability.
2025-07-03 14:49:21 -06:00
Nicholas Cunningham befdee276b feat(core): Make nx-dev buildable with ts solution
- Update types and ensure with generating with SSG brower apis are not used.
- Add all paths to root tsconfig.json
2025-07-03 14:49:21 -06:00
Nicholas Cunningham d30cb707fb feat(core): Update nx repo to use ts solutions (packages/graph) 2025-07-03 14:49:18 -06:00
1191 changed files with 16849 additions and 3648 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
[build]
target-dir = 'build/target'
target-dir = 'dist/target'
[target.x86_64-unknown-linux-musl]
rustflags = [
+2 -18
View File
@@ -97,27 +97,11 @@ jobs:
pnpm install --frozen-lockfile
pnpm playwright install --with-deps
- name: Check Documentation
run: pnpm nx documentation
timeout-minutes: 20
- name: Run Checks/Lint/Test/Build
run: |
pids=()
pnpm nx-cloud record -- nx format:check &
pids+=($!)
pnpm nx-cloud record -- nx sync:check
pids+=($!)
pnpm nx-cloud record -- nx-cloud conformance:check
pids+=($!)
pnpm nx run-many -t check-imports check-commit check-lock-files check-codeowners --parallel=1 --no-dte &
pids+=($!)
pnpm nx affected --targets=lint,test,build,e2e,e2e-ci,format-native,lint-native &
pnpm nx affected --targets=e2e,e2e-ci &
pids+=($!)
for pid in "${pids[@]}"; do
+5 -1
View File
@@ -34,6 +34,11 @@ CHANGELOG.md
# Next.js
.next
out
nx-dev/nx-dev/public/documentation
nx-dev/nx-dev/public/sitemap.xml
nx-dev/nx-dev/public/sitemap-0.xml
nx-dev/nx-dev/public/robots.txt
# Angular Cache
.angular
@@ -106,4 +111,3 @@ tasks/
# Raw docs local configuration (machine-specific)
.rawdocs.local.json
+6
View File
@@ -17,6 +17,12 @@ launch-templates:
- name: Check Node Version
script: node --version
- name: Check COREPACK_ENABLE_AUTO_PIN
script: echo $COREPACK_ENABLE_AUTO_PIN
- name: Check COREPACK_ENABLE_STRICT
script: echo $COREPACK_ENABLE_STRICT
- name: Cache restore
uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/cache/main.yaml'
inputs:
@@ -93,8 +93,6 @@ Error.cause
`Readonly` **errors**: [file: string, error: Error][]
An array of tuples that represent errors encountered when processing a given file. An example entry might look like ['path/to/project.json', [Error: 'Invalid JSON. Unexpected token 'a' in JSON at position 0]]
---
### message
@@ -121,8 +119,6 @@ Error.name
`Readonly` **partialResults**: [`CreateNodesResultV2`](/reference/core-api/devkit/documents/CreateNodesResultV2)
The partial results of the `createNodesV2` function. This should be the results for each file that didn't encounter an issue.
---
### pluginIndex
@@ -0,0 +1,129 @@
# Interface: PackageManagerCommands
## Table of contents
### Properties
- [add](/reference/core-api/devkit/documents/PackageManagerCommands#add): string
- [addDev](/reference/core-api/devkit/documents/PackageManagerCommands#adddev): string
- [ciInstall](/reference/core-api/devkit/documents/PackageManagerCommands#ciinstall): string
- [dlx](/reference/core-api/devkit/documents/PackageManagerCommands#dlx): string
- [exec](/reference/core-api/devkit/documents/PackageManagerCommands#exec): string
- [getRegistryUrl](/reference/core-api/devkit/documents/PackageManagerCommands#getregistryurl): string
- [install](/reference/core-api/devkit/documents/PackageManagerCommands#install): string
- [list](/reference/core-api/devkit/documents/PackageManagerCommands#list): string
- [preInstall](/reference/core-api/devkit/documents/PackageManagerCommands#preinstall): string
- [publish](/reference/core-api/devkit/documents/PackageManagerCommands#publish): Function
- [rm](/reference/core-api/devkit/documents/PackageManagerCommands#rm): string
- [run](/reference/core-api/devkit/documents/PackageManagerCommands#run): Function
- [updateLockFile](/reference/core-api/devkit/documents/PackageManagerCommands#updatelockfile): string
## Properties
### add
**add**: `string`
---
### addDev
**addDev**: `string`
---
### ciInstall
**ciInstall**: `string`
---
### dlx
**dlx**: `string`
---
### exec
**exec**: `string`
---
### getRegistryUrl
`Optional` **getRegistryUrl**: `string`
---
### install
**install**: `string`
---
### list
**list**: `string`
---
### preInstall
`Optional` **preInstall**: `string`
---
### publish
**publish**: (`packageRoot`: `string`, `registry`: `string`, `registryConfigKey`: `string`, `tag`: `string`) => `string`
#### Type declaration
▸ (`packageRoot`, `registry`, `registryConfigKey`, `tag`): `string`
##### Parameters
| Name | Type |
| :------------------ | :------- |
| `packageRoot` | `string` |
| `registry` | `string` |
| `registryConfigKey` | `string` |
| `tag` | `string` |
##### Returns
`string`
---
### rm
**rm**: `string`
---
### run
**run**: (`script`: `string`, `args?`: `string`) => `string`
#### Type declaration
▸ (`script`, `args?`): `string`
##### Parameters
| Name | Type |
| :------- | :------- |
| `script` | `string` |
| `args?` | `string` |
##### Returns
`string`
---
### updateLockFile
**updateLockFile**: `string`
@@ -8,7 +8,7 @@ A node describing a project in a workspace
- [data](/reference/core-api/devkit/documents/ProjectGraphProjectNode#data): ProjectConfiguration & Object
- [name](/reference/core-api/devkit/documents/ProjectGraphProjectNode#name): string
- [type](/reference/core-api/devkit/documents/ProjectGraphProjectNode#type): "lib" | "app" | "e2e"
- [type](/reference/core-api/devkit/documents/ProjectGraphProjectNode#type): "app" | "e2e" | "lib"
## Properties
@@ -28,4 +28,4 @@ Additional metadata about a project
### type
**type**: `"lib"` \| `"app"` \| `"e2e"`
**type**: `"app"` \| `"e2e"` \| `"lib"`
+1
View File
@@ -44,6 +44,7 @@ It only uses language primitives and immutable objects
- [MigrationsJson](/reference/core-api/devkit/documents/MigrationsJson)
- [NxAffectedConfig](/reference/core-api/devkit/documents/NxAffectedConfig)
- [NxJsonConfiguration](/reference/core-api/devkit/documents/NxJsonConfiguration)
- [PackageManagerCommands](/reference/core-api/devkit/documents/PackageManagerCommands)
- [ProjectConfiguration](/reference/core-api/devkit/documents/ProjectConfiguration)
- [ProjectFileMap](/reference/core-api/devkit/documents/ProjectFileMap)
- [ProjectGraph](/reference/core-api/devkit/documents/ProjectGraph)
@@ -14,13 +14,13 @@ This will **add** `react` and `jest` to the dependencies and devDependencies sec
#### Parameters
| Name | Type | Description |
| :---------------------- | :-------------------------------------------------- | :-------------------------------------------------------------------------- |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) | Tree representing file system to modify |
| `dependencies` | `Record`\<`string`, `string`\> | Dependencies to be added to the dependencies section of package.json |
| `devDependencies` | `Record`\<`string`, `string`\> | Dependencies to be added to the devDependencies section of package.json |
| `packageJsonPath?` | `string` | Path to package.json |
| `keepExistingVersions?` | `boolean` | If true, prevents existing dependencies from being bumped to newer versions |
| Name | Type | Default value | Description |
| :---------------------- | :-------------------------------------------------- | :--------------- | :-------------------------------------------------------------------------- |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) | `undefined` | Tree representing file system to modify |
| `dependencies` | `Record`\<`string`, `string`\> | `undefined` | Dependencies to be added to the dependencies section of package.json |
| `devDependencies` | `Record`\<`string`, `string`\> | `undefined` | Dependencies to be added to the devDependencies section of package.json |
| `packageJsonPath` | `string` | `'package.json'` | Path to package.json |
| `keepExistingVersions?` | `boolean` | `undefined` | If true, prevents existing dependencies from being bumped to newer versions |
#### Returns
@@ -6,12 +6,12 @@ Adds project configuration to the Nx workspace.
#### Parameters
| Name | Type | Default value | Description |
| :--------------------- | :---------------------------------------------------------------------------------- | :------------ | :---------------------------------------------------------------------- |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) | `undefined` | the file system tree |
| `projectName` | `string` | `undefined` | unique name. Often directories are part of the name (e.g., mydir-mylib) |
| `projectConfiguration` | [`ProjectConfiguration`](/reference/core-api/devkit/documents/ProjectConfiguration) | `undefined` | project configuration |
| `standalone` | `boolean` | `true` | whether the project is configured in workspace.json or not |
| Name | Type | Description |
| :--------------------- | :---------------------------------------------------------------------------------- | :---------------------------------------------------------------------- |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) | the file system tree |
| `projectName` | `string` | unique name. Often directories are part of the name (e.g., mydir-mylib) |
| `projectConfiguration` | [`ProjectConfiguration`](/reference/core-api/devkit/documents/ProjectConfiguration) | project configuration |
| `standalone?` | `boolean` | whether the project is configured in workspace.json or not |
#### Returns
+4 -4
View File
@@ -12,10 +12,10 @@ Convert an Nx Generator into an Angular Devkit Schematic.
#### Parameters
| Name | Type | Description |
| :------------------------------ | :------------------------------------------------------------------- | :---------------------------------------------------------- |
| `generator` | [`Generator`](/reference/core-api/devkit/documents/Generator)\<`T`\> | The Nx generator to convert to an Angular Devkit Schematic. |
| `skipWritingConfigInOldFormat?` | `boolean` | - |
| Name | Type | Default value | Description |
| :----------------------------- | :------------------------------------------------------------------- | :------------ | :---------------------------------------------------------- |
| `generator` | [`Generator`](/reference/core-api/devkit/documents/Generator)\<`T`\> | `undefined` | The Nx generator to convert to an Angular Devkit Schematic. |
| `skipWritingConfigInOldFormat` | `boolean` | `false` | - |
#### Returns
@@ -28,7 +28,7 @@ stored in the daemon process. To reset both run: `nx reset`.
| Name | Type |
| :------------------------ | :-------- |
| `opts` | `Object` |
| `opts?` | `Object` |
| `opts.exitOnError` | `boolean` |
| `opts.resetDaemonClient?` | `boolean` |
@@ -6,9 +6,9 @@ Detects which package manager is used in the workspace based on the lock file.
#### Parameters
| Name | Type | Default value |
| :---- | :------- | :------------ |
| `dir` | `string` | `''` |
| Name | Type |
| :----- | :------- |
| `dir?` | `string` |
#### Returns
+5 -5
View File
@@ -6,11 +6,11 @@ Formats all the created or updated files using Prettier
#### Parameters
| Name | Type | Description |
| :------------------------------ | :-------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) | the file system tree |
| `options?` | `Object` | - |
| `options.sortRootTsconfigPaths` | `boolean` | TODO(v21): Stop sorting tsconfig paths by default, paths are now less common/important in Nx workspace setups, and the sorting causes comments to be lost. |
| Name | Type | Default value | Description |
| :------------------------------ | :-------------------------------------------------- | :------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) | `undefined` | the file system tree |
| `options` | `Object` | `undefined` | - |
| `options.sortRootTsconfigPaths` | `boolean` | `true` | TODO(v21): Stop sorting tsconfig paths by default, paths are now less common/important in Nx workspace setups, and the sorting causes comments to be lost. |
#### Returns
+1 -1
View File
@@ -32,7 +32,7 @@ doesn't get confused about incorrect TypeScript files.
| `srcFolder` | `string` | the source folder of files (absolute path) |
| `target` | `string` | the target folder (relative to the tree root) |
| `substitutions` | `Object` | an object of key-value pairs |
| `options?` | `GenerateFilesOptions` | See GenerateFilesOptions |
| `options` | `GenerateFilesOptions` | See GenerateFilesOptions |
#### Returns
@@ -19,8 +19,6 @@ Pass the target and overrides instead. This will be removed in v20.
**getOutputsForTargetAndConfiguration**(`target`, `overrides`, `node`): `string`[]
Returns the list of outputs that will be cached.
#### Parameters
| Name | Type |
@@ -1,6 +1,6 @@
# Function: getPackageManagerCommand
**getPackageManagerCommand**(`packageManager?`, `root?`): `PackageManagerCommands`
**getPackageManagerCommand**(`packageManager?`, `root?`): [`PackageManagerCommands`](/reference/core-api/devkit/documents/PackageManagerCommands)
Returns commands for the package manager used in the workspace.
By default, the package manager is derived based on the lock file,
@@ -14,11 +14,11 @@ execSync(`${getPackageManagerCommand().addDev} my-dev-package`);
#### Parameters
| Name | Type | Default value | Description |
| :--------------- | :---------------------------------------------------------------------- | :-------------- | :------------------------------------------------------------------------------------------ |
| `packageManager` | [`PackageManager`](/reference/core-api/devkit/documents/PackageManager) | `undefined` | The package manager to use. If not provided, it will be detected based on the lock file. |
| `root` | `string` | `workspaceRoot` | The directory the commands will be ran inside of. Defaults to the current workspace's root. |
| Name | Type | Description |
| :---------------- | :---------------------------------------------------------------------- | :------------------------------------------------------------------------------------------ |
| `packageManager?` | [`PackageManager`](/reference/core-api/devkit/documents/PackageManager) | The package manager to use. If not provided, it will be detected based on the lock file. |
| `root?` | `string` | The directory the commands will be ran inside of. Defaults to the current workspace's root. |
#### Returns
`PackageManagerCommands`
[`PackageManagerCommands`](/reference/core-api/devkit/documents/PackageManagerCommands)
@@ -8,10 +8,10 @@ but it can also be passed in explicitly.
#### Parameters
| Name | Type |
| :--------------- | :---------------------------------------------------------------------- |
| `packageManager` | [`PackageManager`](/reference/core-api/devkit/documents/PackageManager) |
| `cwd` | `string` |
| Name | Type |
| :---------------- | :---------------------------------------------------------------------- |
| `packageManager?` | [`PackageManager`](/reference/core-api/devkit/documents/PackageManager) |
| `cwd?` | `string` |
#### Returns
+6 -6
View File
@@ -7,12 +7,12 @@ Runs `npm install` or `yarn install`. It will skip running the install if
#### Parameters
| Name | Type | Description |
| :---------------- | :---------------------------------------------------------------------- | :------------------------------------------------------------ |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) | the file system tree |
| `alwaysRun?` | `boolean` | always run the command even if `package.json` hasn't changed. |
| `cwd?` | `string` | - |
| `packageManager?` | [`PackageManager`](/reference/core-api/devkit/documents/PackageManager) | - |
| Name | Type | Default value | Description |
| :--------------- | :---------------------------------------------------------------------- | :------------ | :------------------------------------------------------------ |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) | `undefined` | the file system tree |
| `alwaysRun` | `boolean` | `false` | always run the command even if `package.json` hasn't changed. |
| `cwd` | `string` | `''` | - |
| `packageManager` | [`PackageManager`](/reference/core-api/devkit/documents/PackageManager) | `undefined` | - |
#### Returns
+4 -4
View File
@@ -6,10 +6,10 @@ Returns true if the workspace is using npm workspaces, yarn workspaces, or pnpm
#### Parameters
| Name | Type | Default value | Description |
| :--------------- | :---------------------------------------------------------------------- | :-------------- | :------------------------------------------------------------------------------------------ |
| `packageManager` | [`PackageManager`](/reference/core-api/devkit/documents/PackageManager) | `undefined` | The package manager to use. If not provided, it will be detected based on the lock file. |
| `root` | `string` | `workspaceRoot` | The directory the commands will be ran inside of. Defaults to the current workspace's root. |
| Name | Type | Description |
| :---------------- | :---------------------------------------------------------------------- | :------------------------------------------------------------------------------------------ |
| `packageManager?` | [`PackageManager`](/reference/core-api/devkit/documents/PackageManager) | The package manager to use. If not provided, it will be detected based on the lock file. |
| `root?` | `string` | The directory the commands will be ran inside of. Defaults to the current workspace's root. |
#### Returns
@@ -16,7 +16,7 @@
- [\_delegate](/reference/core-api/devkit/documents/ngcli_adapter/NxScopedHost#_delegate): Host<any>
- [\_root](/reference/core-api/devkit/documents/ngcli_adapter/NxScopedHost#_root): Path
- [root](/reference/core-api/devkit/documents/ngcli_adapter/NxScopedHost#root): string
- [root](/reference/core-api/devkit/documents/ngcli_adapter/NxScopedHost#root): any
### Accessors
@@ -84,7 +84,7 @@ virtualFs.ScopedHost.\_root
### root
`Private` **root**: `string`
`Private` **root**: `any`
## Accessors
@@ -14,12 +14,12 @@ This will **remove** `react` and `jest` from the dependencies and devDependencie
#### Parameters
| Name | Type | Description |
| :----------------- | :-------------------------------------------------- | :-------------------------------------------------------------------------- |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) | - |
| `dependencies` | `string`[] | Dependencies to be removed from the dependencies section of package.json |
| `devDependencies` | `string`[] | Dependencies to be removed from the devDependencies section of package.json |
| `packageJsonPath?` | `string` | - |
| Name | Type | Default value | Description |
| :---------------- | :-------------------------------------------------- | :--------------- | :-------------------------------------------------------------------------- |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) | `undefined` | - |
| `dependencies` | `string`[] | `undefined` | Dependencies to be removed from the dependencies section of package.json |
| `devDependencies` | `string`[] | `undefined` | Dependencies to be removed from the devDependencies section of package.json |
| `packageJsonPath` | `string` | `'package.json'` | - |
#### Returns
@@ -1,16 +1,16 @@
# Function: visitNotIgnoredFiles
**visitNotIgnoredFiles**(`tree`, `dirPath`, `visitor`): `void`
**visitNotIgnoredFiles**(`tree`, `dirPath?`, `visitor`): `void`
Utility to act on all files in a tree that are not ignored by git.
#### Parameters
| Name | Type |
| :-------- | :-------------------------------------------------- |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) |
| `dirPath` | `string` |
| `visitor` | (`path`: `string`) => `void` |
| Name | Type | Default value |
| :-------- | :-------------------------------------------------- | :------------ |
| `tree` | [`Tree`](/reference/core-api/devkit/documents/Tree) | `undefined` |
| `dirPath` | `string` | `tree.root` |
| `visitor` | (`path`: `string`) => `void` | `undefined` |
#### Returns
@@ -44,6 +44,7 @@ It only uses language primitives and immutable objects
- [MigrationsJson](/reference/core-api/devkit/documents/MigrationsJson)
- [NxAffectedConfig](/reference/core-api/devkit/documents/NxAffectedConfig)
- [NxJsonConfiguration](/reference/core-api/devkit/documents/NxJsonConfiguration)
- [PackageManagerCommands](/reference/core-api/devkit/documents/PackageManagerCommands)
- [ProjectConfiguration](/reference/core-api/devkit/documents/ProjectConfiguration)
- [ProjectFileMap](/reference/core-api/devkit/documents/ProjectFileMap)
- [ProjectGraph](/reference/core-api/devkit/documents/ProjectGraph)
+11
View File
@@ -0,0 +1,11 @@
{
"name": "@nx/e2e-angular",
"version": "0.0.1",
"private": true,
"dependencies": {
"nx": "workspace:*",
"@nx/devkit": "workspace:*",
"@nx/e2e-utils": "workspace:*",
"@nx/workspace": "workspace:*"
}
}
+1 -1
View File
@@ -6,7 +6,7 @@ import {
runCLI,
uniq,
updateFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('angular.json v1 config', () => {
const app1 = uniq('app1');
@@ -10,7 +10,7 @@ import {
removeFile,
checkFilesExist,
updateJson,
} from '../../utils';
} from '@nx/e2e-utils';
import { names } from '@nx/devkit';
import { join } from 'path';
+1 -2
View File
@@ -6,9 +6,8 @@ import {
runCLI,
uniq,
updateFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { classify } from '@nx/devkit/src/utils/string-utils';
import { join } from 'path';
describe('Move Angular Project', () => {
let proj: string;
@@ -10,7 +10,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { join } from 'path';
describe('Angular Module Federation', () => {
+1 -1
View File
@@ -12,7 +12,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { join } from 'path';
describe('Angular Module Federation', () => {
+1 -1
View File
@@ -11,7 +11,7 @@ import {
runNgNew,
uniq,
updateFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { PackageManager } from 'nx/src/utils/package-manager';
describe('convert Angular CLI workspace to an Nx workspace', () => {
+1 -1
View File
@@ -7,7 +7,7 @@ import {
runCLI,
runCLIAsync,
uniq,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('Angular Package', () => {
describe('ngrx', () => {
+1 -1
View File
@@ -13,7 +13,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { angularCliVersion } from '@nx/workspace/src/utils/versions';
import { ensureDirSync } from 'fs-extra';
import { execSync } from 'node:child_process';
+1 -1
View File
@@ -17,7 +17,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { join, normalize } from 'path';
describe('Angular Projects', () => {
+1 -1
View File
@@ -8,7 +8,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { join } from 'path';
describe('Tailwind support', () => {
+12
View File
@@ -6,6 +6,18 @@
"include": [],
"files": [],
"references": [
{
"path": "../../packages/workspace"
},
{
"path": "../utils"
},
{
"path": "../../packages/devkit"
},
{
"path": "../../packages/nx"
},
{
"path": "./tsconfig.spec.json"
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
"types": ["jest", "node"],
"noEmit": true
},
"include": [
"**/*.test.ts",
+8
View File
@@ -0,0 +1,8 @@
{
"name": "@nx/e2e-cypress",
"version": "0.0.1",
"private": true,
"dependencies": {
"@nx/e2e-utils": "workspace:*"
}
}
+1 -1
View File
@@ -5,7 +5,7 @@ import {
runCLI,
runE2ETests,
uniq,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
const TEN_MINS_MS = 600_000;
+1 -1
View File
@@ -9,7 +9,7 @@ import {
runE2ETests,
uniq,
updateFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
const TEN_MINS_MS = 600_000;
+3
View File
@@ -6,6 +6,9 @@
"include": [],
"files": [],
"references": [
{
"path": "../utils"
},
{
"path": "./tsconfig.spec.json"
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
"types": ["jest", "node"],
"noEmit": true
},
"include": [
"**/*.test.ts",
+8
View File
@@ -0,0 +1,8 @@
{
"name": "@nx/e2e-detox",
"version": "0.0.1",
"private": true,
"dependencies": {
"@nx/e2e-utils": "workspace:*"
}
}
+1 -1
View File
@@ -7,7 +7,7 @@ import {
uniq,
killPorts,
cleanupProject,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('@nx/detox (legacy)', () => {
const appName = uniq('myapp');
+1 -1
View File
@@ -5,7 +5,7 @@ import {
uniq,
readJson,
updateJson,
} from 'e2e/utils';
} from '@nx/e2e-utils';
describe('@nx/detox', () => {
let project: string;
+3
View File
@@ -6,6 +6,9 @@
"include": [],
"files": [],
"references": [
{
"path": "../utils"
},
{
"path": "./tsconfig.spec.json"
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
"types": ["jest", "node"],
"noEmit": true
},
"include": [
"**/*.test.ts",
+8
View File
@@ -0,0 +1,8 @@
{
"name": "@nx/e2e-esbuild",
"version": "0.0.1",
"private": true,
"dependencies": {
"@nx/e2e-utils": "workspace:*"
}
}
+1 -1
View File
@@ -15,7 +15,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { join } from 'path';
describe('EsBuild Plugin', () => {
+3
View File
@@ -6,6 +6,9 @@
"include": [],
"files": [],
"references": [
{
"path": "../utils"
},
{
"path": "./tsconfig.spec.json"
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
"types": ["jest", "node"],
"noEmit": true
},
"include": [
"**/*.test.ts",
+8
View File
@@ -0,0 +1,8 @@
{
"name": "@nx/e2e-eslint",
"version": "0.0.1",
"private": true,
"dependencies": {
"@nx/e2e-utils": "workspace:*"
}
}
+1 -1
View File
@@ -11,7 +11,7 @@ import {
runCreateWorkspace,
uniq,
updateFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('Linter (legacy)', () => {
describe('Integrated (eslintrc config)', () => {
+1 -1
View File
@@ -11,7 +11,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import * as ts from 'typescript';
describe('Linter', () => {
+3
View File
@@ -6,6 +6,9 @@
"include": [],
"files": [],
"references": [
{
"path": "../utils"
},
{
"path": "./tsconfig.spec.json"
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
"types": ["jest", "node"],
"noEmit": true
},
"include": [
"**/*.test.ts",
+8
View File
@@ -0,0 +1,8 @@
{
"name": "@nx/e2e-expo",
"version": "0.0.1",
"private": true,
"dependencies": {
"@nx/e2e-utils": "workspace:*"
}
}
+1 -1
View File
@@ -14,7 +14,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { ChildProcess } from 'child_process';
import { join } from 'path';
+1 -1
View File
@@ -14,7 +14,7 @@ import {
killPorts,
createFile,
removeFile,
} from 'e2e/utils';
} from '@nx/e2e-utils';
import { join } from 'path';
describe('@nx/expo', () => {
+3
View File
@@ -6,6 +6,9 @@
"include": [],
"files": [],
"references": [
{
"path": "../utils"
},
{
"path": "./tsconfig.spec.json"
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
"types": ["jest", "node"],
"noEmit": true
},
"include": [
"**/*.test.ts",
+8
View File
@@ -0,0 +1,8 @@
{
"name": "@nx/e2e-gradle",
"version": "0.0.1",
"private": true,
"dependencies": {
"@nx/e2e-utils": "workspace:*"
}
}
+1 -1
View File
@@ -10,7 +10,7 @@ import {
readJson,
runCommand,
createFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { mkdirSync, rmdirSync, writeFileSync } from 'fs';
import { execSync } from 'node:child_process';
import { join } from 'path';
+1 -1
View File
@@ -9,7 +9,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { basename, dirname, join } from 'path';
import { createGradleProject } from './utils/create-gradle-project';
+1 -1
View File
@@ -7,7 +7,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { createGradleProject } from './utils/create-gradle-project';
@@ -3,7 +3,7 @@ import {
isWindows,
runCommand,
tmpProjPath,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { execSync } from 'child_process';
import { readFileSync } from 'fs';
import { createFileSync, writeFileSync } from 'fs-extra';
+3
View File
@@ -6,6 +6,9 @@
"include": [],
"files": [],
"references": [
{
"path": "../utils"
},
{
"path": "./tsconfig.spec.json"
}
+3 -2
View File
@@ -1,9 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
"types": ["jest", "node"],
"noEmit": true
},
"include": [
"**/*.test.ts",
@@ -14,6 +14,7 @@
"**/*.test.js",
"**/*.spec.jsx",
"**/*.test.jsx",
"src/**/*.ts",
"**/*.d.ts",
"jest.config.ts"
]
+4 -1
View File
@@ -2,5 +2,8 @@ const preset = require('../jest.preset');
// The root preset sets up the environment for unit tests.
delete preset.setupFiles;
delete preset.moduleNameMapper;
module.exports = preset;
module.exports = {
...preset,
};
+8
View File
@@ -0,0 +1,8 @@
{
"name": "@nx/e2e-jest",
"version": "0.0.1",
"private": true,
"dependencies": {
"@nx/e2e-utils": "workspace:*"
}
}
+1 -1
View File
@@ -7,7 +7,7 @@ import {
updateFile,
expectJestTestsToPass,
cleanupProject,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('Jest', () => {
beforeAll(() => {
+1 -1
View File
@@ -1,4 +1,4 @@
import { newProject, runCLI, runCLIAsync, uniq } from '@nx/e2e/utils';
import { newProject, runCLI, runCLIAsync, uniq } from '@nx/e2e-utils';
describe('Jest root projects', () => {
const myapp = uniq('myapp');
+1 -1
View File
@@ -9,7 +9,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('Jest', () => {
beforeAll(() => {
+3
View File
@@ -6,6 +6,9 @@
"include": [],
"files": [],
"references": [
{
"path": "../utils"
},
{
"path": "./tsconfig.spec.json"
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
"types": ["jest", "node"],
"noEmit": true
},
"include": [
"**/*.test.ts",
+8
View File
@@ -0,0 +1,8 @@
{
"name": "@nx/e2e-js",
"version": "0.0.1",
"private": true,
"dependencies": {
"@nx/e2e-utils": "workspace:*"
}
}
@@ -2,14 +2,12 @@ import {
checkFilesExist,
cleanupProject,
newProject,
readFile,
readJson,
runCLI,
uniq,
updateJson,
updateFile,
runCommand,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('@nx/js:copy-workspace-modules', () => {
let scope: string;
+1 -1
View File
@@ -5,7 +5,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { join } from 'path';
describe('js:node executor', () => {
@@ -8,7 +8,7 @@ import {
updateJson,
runCommand,
tmpProjPath,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('js:prune-lockfile executor', () => {
describe.each([
+1 -1
View File
@@ -9,7 +9,7 @@ import {
uniq,
updateFile,
updateJson,
} from '../../utils';
} from '@nx/e2e-utils';
describe('js:swc executor', () => {
let scope: string;
+3 -3
View File
@@ -19,11 +19,11 @@ import {
updateFile,
updateJson,
waitUntil,
} from '../../utils';
} from '@nx/e2e-utils';
describe('js:tsc executor', () => {
let scope;
beforeAll(() => (scope = newProject()));
beforeAll(() => (scope = newProject({ packages: ['@nx/js'] })));
afterAll(() => cleanupProject());
it('should create libs with js executors (--compiler=tsc)', async () => {
@@ -288,4 +288,4 @@ export function ${lib}Wildcard() {
`;
});
}, 240_000);
});
});
@@ -14,7 +14,7 @@ import {
uniq,
updateFile,
updateJson,
} from '../../utils';
} from '@nx/e2e-utils';
describe('js e2e', () => {
let scope: string;
@@ -57,8 +57,9 @@ describe('js e2e', () => {
// Lint
const result = runCLI(`lint ${dirName}-${libName}`);
expect(result).toContain(`Linting "${dirName}-${libName}"...`);
expect(result).toContain('All files pass linting');
expect(result).toContain(
`Successfully ran target lint for project ${dirName}-${libName}`
);
// Test
const testResult = await runCLIAsync(`test ${dirName}-${libName}`);
@@ -122,7 +123,10 @@ describe('js e2e', () => {
updateJson('nx.json', (json) => {
json.targetDefaults.build = {
...json.targetDefaults.build,
dependsOn: [...json.targetDefaults.build.dependsOn, '^my-custom-build'],
dependsOn: [
...(json.targetDefaults.build?.dependsOn || []),
'^my-custom-build',
],
};
return json;
});
+1 -1
View File
@@ -6,7 +6,7 @@ import {
runCLI,
uniq,
updateFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { execSync } from 'child_process';
describe('inlining', () => {
+1 -2
View File
@@ -10,8 +10,7 @@ import {
getPackageManagerCommand,
readJson,
updateFile,
renameFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { join } from 'path';
describe('packaging libs', () => {
+1 -1
View File
@@ -9,7 +9,7 @@ import {
uniq,
updateFile,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('JS - TS solution setup', () => {
beforeAll(() => {
+3
View File
@@ -6,6 +6,9 @@
"include": [],
"files": [],
"references": [
{
"path": "../utils"
},
{
"path": "./tsconfig.spec.json"
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
"types": ["jest", "node"],
"noEmit": true
},
"include": [
"**/*.test.ts",
+8
View File
@@ -0,0 +1,8 @@
{
"name": "@nx/e2e-lerna-smoke-tests",
"version": "0.0.1",
"private": true,
"dependencies": {
"@nx/e2e-utils": "workspace:*"
}
}
@@ -9,7 +9,7 @@ import {
runLernaCLI,
tmpProjPath,
updateJson,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
expect.addSnapshotSerializer({
serialize(str: string) {
+3
View File
@@ -6,6 +6,9 @@
"include": [],
"files": [],
"references": [
{
"path": "../utils"
},
{
"path": "./tsconfig.spec.json"
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
"types": ["jest", "node"],
"noEmit": true
},
"include": [
"**/*.test.ts",
+8
View File
@@ -0,0 +1,8 @@
{
"name": "@nx/e2e-next",
"version": "0.0.1",
"private": true,
"dependencies": {
"@nx/e2e-utils": "workspace:*"
}
}
+1 -1
View File
@@ -7,7 +7,7 @@ import {
runE2ETests,
uniq,
updateFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('Next.js App Router', () => {
let proj: string;
+1 -1
View File
@@ -6,7 +6,7 @@ import {
runE2ETests,
uniq,
updateFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('NextJs Component Testing', () => {
beforeAll(() => {
+1 -3
View File
@@ -4,9 +4,7 @@ import {
newProject,
runCLI,
uniq,
updateFile,
readFile,
} from 'e2e/utils';
} from '@nx/e2e-utils';
describe('Next.js Jest Configuration', () => {
let proj: string;
+1 -1
View File
@@ -17,7 +17,7 @@ import {
uniq,
updateFile,
updateJson,
} from 'e2e/utils';
} from '@nx/e2e-utils';
import { mkdirSync, removeSync } from 'fs-extra';
import { join } from 'path';
import { checkApp } from './utils';
@@ -5,7 +5,7 @@ import {
runCLI,
runCreateWorkspace,
uniq,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
// This test exists as coverage for a previous regression
describe('nextjs standalone playwright linting', () => {
+1 -1
View File
@@ -5,7 +5,7 @@ import {
newProject,
uniq,
updateFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('Next Playwright e2e tests', () => {
let projectName;
+1 -1
View File
@@ -4,7 +4,7 @@ import {
newProject,
runCLI,
uniq,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
describe('Next.js Storybook', () => {
const appName = uniq('app');
+1 -1
View File
@@ -6,7 +6,7 @@ import {
runCLI,
uniq,
readFile,
} from '@nx/e2e/utils';
} from '@nx/e2e-utils';
import { checkApp } from './utils';
describe('Next.js Styles', () => {

Some files were not shown because too many files have changed in this diff Show More