create-eth
Version:
Create a Scaffold-ETH-2 app
75 lines (53 loc) • 15.2 kB
Markdown
# Template and Args File List
This document provides a comprehensive list of `.template.mjs` files and their corresponding `.args.mjs` example files used in the `create-eth` project.
Template files are the base files that can be extended by third-party extensions. Args files are used to inject additional content into these template files. Understanding the relationship between these files is crucial for developing extensions and customizing the base instance created by `create-eth`.
If you're interested in developing third-party extensions, the [THIRD-PARTY-EXTENSION.md](./THIRD-PARTY-EXTENSION.md) guide provides detailed instructions on the process. Additionally, we have a [YouTube tutorial](https://www.youtube.com/watch?v=XQCv533XGZk) that walks you through the process of creating an extension step-by-step.
### Useful for third-party extensions
#### Foundry
| Template | Example args file |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| [(script) `Deploy.s.sol.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/script/Deploy.s.sol.template.mjs) | [`Deploy.s.sol.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/foundry/script/Deploy.s.sol.args.mjs) |
| [(config) `foundry.toml.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/foundry.toml.template.mjs) | [`foundry.toml.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/foundry/foundry.toml.args.mjs) |
| [(config) `Makefile.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/Makefile.template.mjs) | [`Makefile.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/foundry/Makefile.args.mjs) |
#### Hardhat
| Template | Example args file |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [(config) `hardhat.config.ts.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/hardhat/packages/hardhat/hardhat.config.ts.template.mjs) | [`hardhat.config.ts.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/hardhat/hardhat.config.ts.args.mjs) |
#### NextJS
| Template | Example args file |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [(app) `layout.tsx.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/app/layout.tsx.template.mjs) | [`layout.tsx.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/app/layout.tsx.args.mjs) |
| [(app) `page.tsx.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/app/page.tsx.template.mjs) | [`page.tsx.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/app/page.tsx.args.mjs) |
| [(component) `Header.tsx.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/components/Header.tsx.template.mjs) | [`Header.tsx.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/components/Header.tsx.args.mjs) |
| [(component) `ScaffoldEthAppWithProviders.tsx.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/components/ScaffoldEthAppWithProviders.tsx.template.mjs) | [`ScaffoldEthAppWithProviders.tsx.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/components/ScaffoldEthAppWithProviders.tsx.args.mjs) |
| [(contract) `externalContracts.ts.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/contracts/externalContracts.ts.template.mjs) | [`externalContracts.ts.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/contracts/externalContracts.ts.args.mjs) |
| [(styles) `globals.css.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/styles/globals.css.template.mjs) | [`globals.css.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/styles/globals.css.args.mjs) |
| [(utils) `getMetadata.ts.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/utils/scaffold-eth/getMetadata.ts.template.mjs) | [`getMetadata.ts.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/utils/scaffold-eth/getMetadata.ts.args.mjs) |
| [(config) `scaffold.config.ts.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/scaffold.config.ts.template.mjs) | [`scaffold.config.ts.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/scaffold.config.ts.args.mjs) |
| [(config) `next.config.js.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/next.config.js.template.mjs) | [`next.config.js.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/next.config.js.args.mjs) |
| [(config) `tailwind.config.js.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/tailwind.config.js.template.mjs) | [`tailwind.config.js.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/tailwind.config.js.args.mjs) |
| [(config) `manifest.json.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/public/manifest.json.template.mjs) | [`manifest.json.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/next.config.js.args.mjs) |
| [(config) `tsconfig.json.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/tsconfig.json.template.mjs) | [`tsconfig.json.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/tree/example/extension/packages/nextjs/tsconfig.json.args.mjs) |
| [(config) `getMetadata.ts.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/utils/scaffold-eth/getMetadata.ts.args.mjs) | [`getMetadata.ts.teamplte.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/tree/example/extension/packages/nextjs/utils/scaffold-eth/getMetadata.ts.args.mjs) |
| [(env) `.env.example.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/.env.example.template.mjs) | [`.env.example.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/.env.example.args.mjs) |
#### Root
| Template | Example args file |
| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| [(doc) `README.md.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/README.md.template.mjs) | [`README.md.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/README.md.args.mjs) |
### create-eth internal use
#### Monorepo root
| Template | Example args file |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [(workflow) `lint.yaml.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/.github/workflows/lint.yaml.template.mjs) | [`lint.yaml.args.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/hardhat/.github/workflows/lint.yaml.args.mjs) |
| [(cursor rules) `.cursor/rules/scaffold-eth.mdc.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/.cursor/rules/scaffold-eth.template.mdc) | [`.cursor/rules/scaffold-eth.args.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/hardhat/.cursor/rules/scaffold-eth.mdc.args.mjs) |
#### NextJS
| Template | Example args file |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [(blockExplorer) `page.tsx.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/app/blockexplorer/address/[address]/page.tsx.template.mjs) | [`page.tsx.args.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/hardhat/packages/nextjs/app/blockexplorer/address/[address]/page.tsx.args.mjs) |
#### Foundry
| Template | Example args file |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| [(env) `.env.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/.env.template.mjs) | we need to create a `.env` file for the foundry to work properly out of box |
| [(gitignore) `.gitignore.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/deployments/.gitignore.template.mjs) | this makes sure we have empty `deployments` out of box |
We also have `.gitignore.template.mjs` files in [root](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/.gitignore.template.mjs), [nextjs](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/.gitignore.template.mjs), [hardhat](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/hardhat/packages/hardhat/.gitignore.template.mjs), [foundry](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/.env.template.mjs) that are used to prevent npm from ignoring the `.gitignore` files in the generated project.
For more information on how templating works in this project, please refer to the [TEMPLATING.md](./TEMPLATING.md) document.