スターターキット
Litスターターキットは、再利用可能なLitコンポーネントのためのプロジェクトテンプレートであり、他の人が利用できるように公開できます。
ローカルでコンポーネントの作業を開始するには、以下のスタータープロジェクトのいずれかを使用できます
両方のプロジェクトでLitコンポーネントを定義しています。また、コンポーネントの開発、lint、およびテストのためのオプションのツールセットを追加しています
- 依存関係を管理するためのNode.jsとnpm。Node.js 10以上が必要です。
- ローカル開発サーバー、Web Dev Server。
- ESLintとlit-analyzerを使用したlint。
- Web Test Runnerを使用したテスト。
- web-component-analyzerとeleventyで構築された静的なドキュメントサイト。
これらのツールは、Litを操作するために必須ではありません。これらは、優れた開発者エクスペリエンスのための可能なツールセットの1つを表しています。
代替の開始点。 公式のLitスタータープロジェクトの代替として、Open WCプロジェクトには、Litを使用したWebコンポーネント用のプロジェクトジェネレーターがあります。 Open WCスクリプトは一連の質問をし、プロジェクトの足場を築きます。
スタータープロジェクトをダウンロードする
「スタータープロジェクトをダウンロードする」へのパーマリンクプロジェクトをローカルで試す最も簡単な方法は、スタータープロジェクトの1つをzipファイルとしてダウンロードすることです。
GitHubからzipファイルとしてスタータープロジェクトをダウンロードします
zipファイルを解凍します。
依存関係をインストールします。
cd <project folder>npm i
GitHubで入手したいですか? gitに慣れている場合は、zipファイルをダウンロードする代わりに、スタータープロジェクト用のGitHubリポジトリを作成することをお勧めします。 JavaScriptスタータープロジェクトまたはTypeScriptスタータープロジェクトから独自のリポジトリを作成するには、GitHubテンプレートリポジトリ機能を使用できます。次に、上記のように、新しいリポジトリをクローンし、依存関係をインストールします。
プロジェクトを試してみる
「プロジェクトを試してみる」へのパーマリンクスターターのTypeScriptバージョンを使用している場合は、プロジェクトのJavaScriptバージョンをビルドします
npm run buildファイルが変更されたときにファイルを監視し、再構築するには、別のシェルで次のコマンドを実行します
npm run build:watchスタータープロジェクトのJavaScriptバージョンを使用している場合は、ビルドステップは必要ありません。
開発サーバーを実行します
npm run serveブラウザータブでプロジェクトのデモページを開きます。 例:
サーバーが別のポート番号を使用している場合があります。 ターミナル出力のURLで正しいポート番号を確認してください。
コンポーネントを編集する
「コンポーネントを編集する」へのパーマリンクコンポーネント定義を編集します。 編集するファイルは、使用している言語によって異なります
- JavaScript。プロジェクトルートにある
my-element.jsファイルを編集します。 - TypeScript。
srcディレクトリにあるmy-element.tsファイルを編集します。
コードで探すいくつかのこと
コードは、コンポーネント(
MyElement)のクラスを定義し、<my-element>という名前のカスタム要素としてブラウザに登録します。@customElement('my-element')export class MyElement extends LitElement { /* ... */ }export class MyElement extends LitElement { /* ... */ }customElements.define('my-element', MyElement);コンポーネントの
renderメソッドは、コンポーネントの一部としてレンダリングされるテンプレートを定義します。 この場合、いくつかのテキスト、いくつかのデータバインディング、およびボタンが含まれています。 詳細については、テンプレートを参照してください。export class MyElement extends LitElement {// ...render() {return html`<h1>Hello, ${this.name}!</h1><button @click=${this._onClick}>Click Count: ${this.count}</button><slot></slot>`;}}コンポーネントはいくつかのプロパティを定義します。 コンポーネントは、これらのプロパティの変更に応答します(たとえば、必要に応じてテンプレートを再レンダリングするなど)。 詳細については、プロパティを参照してください。
export class MyElement extends LitElement {// ...@property({type: String})name = 'World';//...}export class MyElement extends LitElement {// ...static properties = {name: {type: String}};constructor() {super();this.name = 'World';}// ...}
コンポーネントの名前を変更する
「コンポーネントの名前を変更する」へのパーマリンクコンポーネント名を「my-element」からより適切な名前に変更することをお勧めします。 これは、プロジェクト全体でグローバルな検索と置換を実行できるIDEまたは他のテキストエディターを使用するのが最も簡単です。
TypeScriptバージョンを使用している場合は、生成されたファイルを削除します
npm run cleanプロジェクト内のすべてのファイル(
node_modulesフォルダーを除く)で、「my-element」を新しいコンポーネント名で検索および置換します。プロジェクト内のすべてのファイル(
node_modulesフォルダーを除く)で、「MyElement」を新しいクラス名で検索および置換します。新しいコンポーネント名に合わせてソースファイルとテストファイルの名前を変更します
JavaScript
src/my-element.jssrc/test/my-element_test.js
TypeScript
src/my-element.tssrc/test/my-element_test.ts
TypeScriptバージョンを使用している場合は、プロジェクトを再構築します
npm run buildテストして、コンポーネントがまだ動作していることを確認します
npm run serve
次のステップ
「次のステップ」へのパーマリンクコンポーネントに機能を追加する準備はできましたか? 最初のLitコンポーネントの構築についてはコンポーネントに、テンプレートの作成の詳細についてはテンプレートをご覧ください。
テストの実行とその他のツールの使用の詳細については、スタータープロジェクトのREADMEを参照してください
コンポーネントをnpmに公開する方法については、公開を参照してください。