カスタムテンプレート
注: この機能は
react-scripts@3.3.0
以降で使用可能です。
カスタムテンプレートを使用すると、プロジェクトを作成するためのテンプレートを選択しながら、Create React Appのすべての機能を保持できます。
カスタムテンプレートは常にcra-template-[template-name]
の形式で名前が付けられますが、作成コマンドには[template-name]
のみを提供する必要があります。
スコープ付きテンプレートも、@[scope-name]/cra-template
または@[scope-name]/cra-template-[template-name]
という名前でサポートされており、それぞれ@[scope]
および@[scope]/[template-name]
を介してインストールできます。
npx create-react-app my-app --template [template-name]
カスタムテンプレートの検索
デフォルトで2つのテンプレートを提供しています
ただし、npmで"cra-template-*"を検索することで、優れたコミュニティテンプレートを多数見つけることができます。
テンプレートの作成
カスタムテンプレートの作成に興味がある場合は、まずcra-template
の作成方法をご覧ください。
テンプレートは次の構造になっている必要があります
cra-template-[template-name]/
README.md (for npm)
template.json
package.json
template/
README.md (for projects created from this template)
gitignore
public/
index.html
src/
index.js (or index.tsx)
テンプレートのテスト
テンプレートをローカルでテストするには、`file:` 接頭辞を使用して、テンプレートソースのディレクトリへのファイルパスを渡します。
npx create-react-app my-app --template file:../path/to/your/template/cra-template-[template-name]
template
フォルダ
このフォルダは、Create React Appのインストール時にユーザーのアプリディレクトリにコピーされます。このプロセス中に、ファイル`gitignore`は`.gitignore`に名前が変更されます。
ここに dowolne pliki を追加できますが、少なくとも上記で指定されたファイルが必要です。
template.json
ファイル
これはテンプレートの構成ファイルです。これは新しい機能であるため、今後さらにオプションが追加される予定です。今のところ、`package`キーのみがサポートされています。
`package`キーを使用すると、新しいプロジェクトの`package.json`に追加するキー/値(依存関係やテンプレートが依存するカスタムスクリプトなど)を提供できます。
以下は`template.json`ファイルの例です
{
"package": {
"dependencies": {
"eslint-plugin-jsx-a11y": "^6.2.3",
"serve": "^11.2.0"
},
"scripts": {
"serve": "serve -s build",
"build-and-serve": "npm run build && npm run serve"
},
"eslintConfig": {
"extends": ["react-app", "plugin:jsx-a11y/recommended"],
"plugins": ["jsx-a11y"]
}
}
}
`"dependencies"`と`"scripts"`に追加した値は、Create React Appのデフォルト値とマージされます。他のキーの値はそのまま使用され、一致するCreate React Appのデフォルト値が置き換えられます。
便宜上、プロジェクトがyarnで初期化されると、カスタム`"scripts"`と`README`の`npm run`は常に`yarn`に置き換えられます。