nx/docs/generated/devkit/generateFiles.md
Craigory Coppola dd6eda84b0
feat(devkit): allow to customize overwrite mode in generateFiles (#26354)
Adds a new capability to choose how to handle already existing target
files when using a generator.

See #17925

Co-authored-by: Michael Monerau <micmo@qontrol.io>
2024-06-04 16:12:15 -04:00

40 lines
1.7 KiB
Markdown

# Function: generateFiles
**generateFiles**(`tree`, `srcFolder`, `target`, `substitutions`, `options?`): `void`
Generates a folder of files based on provided templates.
While doing so it performs two substitutions:
- Substitutes segments of file names surrounded by \_\_
- Uses ejs to substitute values in templates
Examples:
```typescript
generateFiles(tree, path.join(__dirname, 'files'), './tools/scripts', {
tmpl: '',
name: 'myscript',
});
```
This command will take all the files from the `files` directory next to the place where the command is invoked from.
It will replace all `__tmpl__` with '' and all `__name__` with 'myscript' in the file names, and will replace all
`<%= name %>` with `myscript` in the files themselves.
`tmpl: ''` is a common pattern. With it you can name files like this: `index.ts__tmpl__`, so your editor
doesn't get confused about incorrect TypeScript files.
#### Parameters
| Name | Type | Description |
| :-------------- | :------------------------------------ | :-------------------------------------------- |
| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree |
| `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 |
#### Returns
`void`