AMPのLTS指定とバージョン固定する方法
AMPのマイナーバージョンにおけるアップデートはcdnファイル上書きで行われるため、AMPコンポーネントで予期しない不具合が発生した場合に、LTS指定する方法と過去のビルドバージョンに固定する方法をまとめました。(English versin: here)
AMPコンポーネントでLTS版を指定する方法
最新のバージョンではなく、LTS(Long-Term Stable)版を指定する場合は以下のように、https://cdn.ampproject.org/lts/
下のv0.js
とamp-carousel-0.1.js
などのコンポーネントのjsを指定することができます。
- <script async src="https://cdn.ampproject.org/v0.js"></script>
- <script async custom-element="amp-carousel" src="https://cdn.ampproject.org/v0/amp-carousel-0.1.js"></script>
- <script async custom-element="amp-list" src="https://cdn.ampproject.org/v0/amp-list-0.1.js"></script>
+ <script async src="https://cdn.ampproject.org/lts/v0.js"></script>
+ <script async custom-element="amp-carousel" src="https://cdn.ampproject.org/lts/v0/amp-carousel-0.1.js"></script>
+ <script async custom-element="amp-list" src="https://cdn.ampproject.org/lts/v0/amp-list-0.1.js"></script>
ページ内で1つのコンポーネントだけをLTSバージョン指定することは出来ないようなので、v0.jsと全てのコンポーネントのjsをLTSバージョン指定にする必要があります。
また、LTSバージョンは毎月の第2月曜日に、安定したビルドバージョンに更新されるそうです。
出典: https://github.com/ampproject/amphtml/blob/master/contributing/lts-release.md
AMPコンポーネントをビルドバージョン固定で使用する方法
AMPコンポーネントを特定のビルドバージョン固定する場合には以下のように、https://cdn.ampproject.org/rtv/01ビルドバージョン/
下のv0.js
とamp-carousel-0.1.js
などのコンポーネントのjsを指定することができます。
ビルドバージョンは、ampproject/amphtmlのreleases で確認出来るyymmddhhmmss0
の13桁の番号で、AMPの各jsファイル内のself.AMP_CONFIG
のv
の値としても記載されています。
2004030010070
に固定したい場合
- <script async src="https://cdn.ampproject.org/v0.js"></script>
- <script async custom-element="amp-carousel" src="https://cdn.ampproject.org/v0/amp-carousel-0.1.js"></script>
- <script async custom-element="amp-list" src="https://cdn.ampproject.org/v0/amp-list-0.1.js"></script>
+ <script async src="https://cdn.ampproject.org/rtv/012004030010070/v0.js"></script>
+ <script async custom-element="amp-carousel" src="https://cdn.ampproject.org/rtv/012004030010070/v0/amp-carousel-0.1.js"></script>
+ <script async custom-element="amp-list" src="https://cdn.ampproject.org/rtv/012004030010070/v0/amp-list-0.1.js"></script>
ページ内で1つのコンポーネントだけをバージョン固定することは出来ないようなので、v0.jsと全てのコンポーネントのjsを同一のビルドバージョンに固定する必要があります。
また、この方法でバージョン固定を行うとAMP Validatedではなくなるという問題が起こります。
まとめ
LTS指定とバージョン固定のメリットとデメリットも簡単にまとめると以下のようになると思います。
方法 | メリット | デメリット |
---|---|---|
LTS指定 | AMP Validated | (毎月更新されてしまう) |
バージョン固定 | ある瞬間のバージョンに固定出来る | non AMP Validated |
役に立ちましたら幸いです。引き続き AMP の知見を記事にしていこうと思います。
LGTMをしていただけるとモチベーションに繋がりますので押していただけますと嬉しいです⚡️