2021-11-29 14:16:01 +03:00
|
|
|
# Project templates
|
|
|
|
|
2024-02-06 05:52:26 +03:00
|
|
|
Folder contains a project templates and functionality to apply template values to all projects inside rush multi repo.
|
2021-11-29 14:16:01 +03:00
|
|
|
|
|
|
|
Any folder with package.json inside templates are template, so it is possible to apply it.
|
|
|
|
|
|
|
|
Templates will be matched using `peerDependencies` entries should be available inside dependencies of project template is matched against.
|
|
|
|
|
|
|
|
So ui template with peer dependency to `svelte`, will be matched to any UI plugin.
|
|
|
|
|
|
|
|
If no template is matched for project then `default` template will be used.
|
|
|
|
|
2022-02-10 12:04:18 +03:00
|
|
|
## Explicit template selection
|
|
|
|
|
|
|
|
If package.json contains "template" field, template from templates with matched name will be selected.
|
|
|
|
|
2021-11-29 14:16:01 +03:00
|
|
|
## Apply rules
|
|
|
|
|
|
|
|
- If file in template folder is pressent and file in project folder is not, it will be copied.
|
|
|
|
- If package.json contain '#replaces' section with filename, file will be overriten in any case.
|
|
|
|
- If filename in template starts with ~ then file in project will be removed instead of add.
|
|
|
|
- package.json
|
|
|
|
- dependencies - will be updated to contain all values from template package.json dependencies with exact same versions.
|
|
|
|
- devDependencies - will be updated to contain all values from template package.json dependencies with exact same versions.
|
|
|
|
- scripts - will be updated to contain all values from template package.json dependencies with exact same versions.
|