The Nx Devkit is the underlying technology used to customize Nx to support
different technologies and custom use-cases. It contains many utility
functions for reading and writing files, updating configuration,
working with Abstract Syntax Trees(ASTs), and more.

As with most things in Nx, the core of Nx Devkit is very simple.
It only uses language primitives and immutable objects
(the tree being the only exception).

## Table of contents

### Enumerations

- [ChangeType](/docs/reference/devkit/ChangeType)
- [DependencyType](/docs/reference/devkit/DependencyType)
- [OverwriteStrategy](/docs/reference/devkit/OverwriteStrategy)

### Classes

- [AggregateCreateNodesError](/docs/reference/devkit/AggregateCreateNodesError)
- [StaleProjectGraphCacheError](/docs/reference/devkit/StaleProjectGraphCacheError)

### Interfaces

- [CreateDependenciesContext](/docs/reference/devkit/CreateDependenciesContext)
- [CreateNodesContext](/docs/reference/devkit/CreateNodesContext)
- [CreateNodesResult](/docs/reference/devkit/CreateNodesResult)
- [DefaultTasksRunnerOptions](/docs/reference/devkit/DefaultTasksRunnerOptions)
- [ExecutorContext](/docs/reference/devkit/ExecutorContext)
- [ExecutorsJson](/docs/reference/devkit/ExecutorsJson)
- [FileChange](/docs/reference/devkit/FileChange)
- [FileData](/docs/reference/devkit/FileData)
- [FileMap](/docs/reference/devkit/FileMap)
- [GeneratorsJson](/docs/reference/devkit/GeneratorsJson)
- [GraphJson](/docs/reference/devkit/GraphJson)
- [Hash](/docs/reference/devkit/Hash)
- [HasherContext](/docs/reference/devkit/HasherContext)
- [ImplicitJsonSubsetDependency](/docs/reference/devkit/ImplicitJsonSubsetDependency)
- [JsonParseOptions](/docs/reference/devkit/JsonParseOptions)
- [JsonSerializeOptions](/docs/reference/devkit/JsonSerializeOptions)
- [MigrationReturnObject](/docs/reference/devkit/MigrationReturnObject)
- [MigrationsJson](/docs/reference/devkit/MigrationsJson)
- [NxAffectedConfig](/docs/reference/devkit/NxAffectedConfig)
- [NxJsonConfiguration](/docs/reference/devkit/NxJsonConfiguration)
- [ProjectConfiguration](/docs/reference/devkit/ProjectConfiguration)
- [ProjectFileMap](/docs/reference/devkit/ProjectFileMap)
- [ProjectGraph](/docs/reference/devkit/ProjectGraph)
- [ProjectGraphDependency](/docs/reference/devkit/ProjectGraphDependency)
- [ProjectGraphExternalNode](/docs/reference/devkit/ProjectGraphExternalNode)
- [ProjectGraphProjectNode](/docs/reference/devkit/ProjectGraphProjectNode)
- [ProjectsConfigurations](/docs/reference/devkit/ProjectsConfigurations)
- [RemoteCache](/docs/reference/devkit/RemoteCache)
- [StringDeletion](/docs/reference/devkit/StringDeletion)
- [StringInsertion](/docs/reference/devkit/StringInsertion)
- [Target](/docs/reference/devkit/Target)
- [TargetConfiguration](/docs/reference/devkit/TargetConfiguration)
- [TargetDependencyConfig](/docs/reference/devkit/TargetDependencyConfig)
- [Task](/docs/reference/devkit/Task)
- [TaskGraph](/docs/reference/devkit/TaskGraph)
- [TaskHasher](/docs/reference/devkit/TaskHasher)
- [TaskResult](/docs/reference/devkit/TaskResult)
- [Tree](/docs/reference/devkit/Tree)
- [Workspace](/docs/reference/devkit/Workspace)

### Type Aliases

- [AsyncIteratorExecutor](/docs/reference/devkit/AsyncIteratorExecutor)
- [CreateDependencies](/docs/reference/devkit/CreateDependencies)
- [CreateMetadata](/docs/reference/devkit/CreateMetadata)
- [CreateMetadataContext](/docs/reference/devkit/CreateMetadataContext)
- [CreateNodes](/docs/reference/devkit/CreateNodes)
- [CreateNodesContextV2](/docs/reference/devkit/CreateNodesContextV2)
- [CreateNodesFunction](/docs/reference/devkit/CreateNodesFunction)
- [CreateNodesFunctionV2](/docs/reference/devkit/CreateNodesFunctionV2)
- [CreateNodesResultArray](/docs/reference/devkit/CreateNodesResultArray)
- [CreateNodesResultV2](/docs/reference/devkit/CreateNodesResultV2)
- [CreateNodesV2](/docs/reference/devkit/CreateNodesV2)
- [CustomHasher](/docs/reference/devkit/CustomHasher)
- [DynamicDependency](/docs/reference/devkit/DynamicDependency)
- [Executor](/docs/reference/devkit/Executor)
- [ExpandedPluginConfiguration](/docs/reference/devkit/ExpandedPluginConfiguration)
- [Generator](/docs/reference/devkit/Generator)
- [GeneratorCallback](/docs/reference/devkit/GeneratorCallback)
- [Hasher](/docs/reference/devkit/Hasher)
- [ImplicitDependency](/docs/reference/devkit/ImplicitDependency)
- [ImplicitDependencyEntry](/docs/reference/devkit/ImplicitDependencyEntry)
- [Migration](/docs/reference/devkit/Migration)
- [NxPlugin](/docs/reference/devkit/NxPlugin)
- [NxPluginV2](/docs/reference/devkit/NxPluginV2)
- [Optional](/docs/reference/devkit/Optional)
- [PackageManager](/docs/reference/devkit/PackageManager)
- [PluginConfiguration](/docs/reference/devkit/PluginConfiguration)
- [PostTasksExecution](/docs/reference/devkit/PostTasksExecution)
- [PostTasksExecutionContext](/docs/reference/devkit/PostTasksExecutionContext)
- [PreTasksExecution](/docs/reference/devkit/PreTasksExecution)
- [PreTasksExecutionContext](/docs/reference/devkit/PreTasksExecutionContext)
- [ProjectType](/docs/reference/devkit/ProjectType)
- [ProjectsMetadata](/docs/reference/devkit/ProjectsMetadata)
- [PromiseExecutor](/docs/reference/devkit/PromiseExecutor)
- [RawProjectGraphDependency](/docs/reference/devkit/RawProjectGraphDependency)
- [StaticDependency](/docs/reference/devkit/StaticDependency)
- [StringChange](/docs/reference/devkit/StringChange)
- [TargetDefaultArrayEntry](/docs/reference/devkit/TargetDefaultArrayEntry)
- [TargetDefaultEntry](/docs/reference/devkit/TargetDefaultEntry)
- [TargetDefaultFilter](/docs/reference/devkit/TargetDefaultFilter)
- [TargetDefaultValue](/docs/reference/devkit/TargetDefaultValue)
- [TargetDefaults](/docs/reference/devkit/TargetDefaults)
- [TaskGraphExecutor](/docs/reference/devkit/TaskGraphExecutor)
- [TaskResults](/docs/reference/devkit/TaskResults)
- [ToJSOptions](/docs/reference/devkit/ToJSOptions)
- [WorkspaceJsonConfiguration](/docs/reference/devkit/WorkspaceJsonConfiguration)

### Variables

- [NX\_VERSION](/docs/reference/devkit/NX_VERSION)
- [cacheDir](/docs/reference/devkit/cacheDir)
- [logger](/docs/reference/devkit/logger)
- [output](/docs/reference/devkit/output)
- [workspaceRoot](/docs/reference/devkit/workspaceRoot)

### Functions

- [addDependenciesToPackageJson](/docs/reference/devkit/addDependenciesToPackageJson)
- [addProjectConfiguration](/docs/reference/devkit/addProjectConfiguration)
- [applyChangesToString](/docs/reference/devkit/applyChangesToString)
- [convertNxExecutor](/docs/reference/devkit/convertNxExecutor)
- [convertNxGenerator](/docs/reference/devkit/convertNxGenerator)
- [createNodesFromFiles](/docs/reference/devkit/createNodesFromFiles)
- [createProjectFileMapUsingProjectGraph](/docs/reference/devkit/createProjectFileMapUsingProjectGraph)
- [createProjectGraphAsync](/docs/reference/devkit/createProjectGraphAsync)
- [defaultTasksRunner](/docs/reference/devkit/defaultTasksRunner)
- [detectPackageManager](/docs/reference/devkit/detectPackageManager)
- [ensurePackage](/docs/reference/devkit/ensurePackage)
- [extractLayoutDirectory](/docs/reference/devkit/extractLayoutDirectory)
- [formatFiles](/docs/reference/devkit/formatFiles)
- [generateFiles](/docs/reference/devkit/generateFiles)
- [getDependencyVersionFromPackageJson](/docs/reference/devkit/getDependencyVersionFromPackageJson)
- [getOutputsForTargetAndConfiguration](/docs/reference/devkit/getOutputsForTargetAndConfiguration)
- [getPackageManagerCommand](/docs/reference/devkit/getPackageManagerCommand)
- [getPackageManagerVersion](/docs/reference/devkit/getPackageManagerVersion)
- [getProjects](/docs/reference/devkit/getProjects)
- [getWorkspaceLayout](/docs/reference/devkit/getWorkspaceLayout)
- [glob](/docs/reference/devkit/glob)
- [globAsync](/docs/reference/devkit/globAsync)
- [hashArray](/docs/reference/devkit/hashArray)
- [installPackagesTask](/docs/reference/devkit/installPackagesTask)
- [isDaemonEnabled](/docs/reference/devkit/isDaemonEnabled)
- [isWorkspacesEnabled](/docs/reference/devkit/isWorkspacesEnabled)
- [joinPathFragments](/docs/reference/devkit/joinPathFragments)
- [moveFilesToNewDirectory](/docs/reference/devkit/moveFilesToNewDirectory)
- [names](/docs/reference/devkit/names)
- [normalizePath](/docs/reference/devkit/normalizePath)
- [offsetFromRoot](/docs/reference/devkit/offsetFromRoot)
- [parseJson](/docs/reference/devkit/parseJson)
- [parseTargetString](/docs/reference/devkit/parseTargetString)
- [readCachedProjectGraph](/docs/reference/devkit/readCachedProjectGraph)
- [readJson](/docs/reference/devkit/readJson)
- [readJsonFile](/docs/reference/devkit/readJsonFile)
- [readNxJson](/docs/reference/devkit/readNxJson)
- [readProjectConfiguration](/docs/reference/devkit/readProjectConfiguration)
- [readProjectsConfigurationFromProjectGraph](/docs/reference/devkit/readProjectsConfigurationFromProjectGraph)
- [readTargetOptions](/docs/reference/devkit/readTargetOptions)
- [removeDependenciesFromPackageJson](/docs/reference/devkit/removeDependenciesFromPackageJson)
- [removeProjectConfiguration](/docs/reference/devkit/removeProjectConfiguration)
- [reverse](/docs/reference/devkit/reverse)
- [runExecutor](/docs/reference/devkit/runExecutor)
- [runTasksInSerial](/docs/reference/devkit/runTasksInSerial)
- [serializeJson](/docs/reference/devkit/serializeJson)
- [stripIndents](/docs/reference/devkit/stripIndents)
- [stripJsonComments](/docs/reference/devkit/stripJsonComments)
- [targetToTargetString](/docs/reference/devkit/targetToTargetString)
- [toJS](/docs/reference/devkit/toJS)
- [updateJson](/docs/reference/devkit/updateJson)
- [updateNxJson](/docs/reference/devkit/updateNxJson)
- [updateProjectConfiguration](/docs/reference/devkit/updateProjectConfiguration)
- [updateTsConfigsToJs](/docs/reference/devkit/updateTsConfigsToJs)
- [validateDependency](/docs/reference/devkit/validateDependency)
- [visitNotIgnoredFiles](/docs/reference/devkit/visitNotIgnoredFiles)
- [workspaceLayout](/docs/reference/devkit/workspaceLayout)
- [writeJson](/docs/reference/devkit/writeJson)
- [writeJsonFile](/docs/reference/devkit/writeJsonFile)
