LoginSignup
0
1

More than 3 years have passed since last update.

AMPコンポーネントでLTS版指定orビルドバージョンを固定する方法(LTS or lock versions AMP components)

Last updated at Posted at 2020-04-15

AMPのLTS指定とバージョン固定する方法

AMPのマイナーバージョンにおけるアップデートはcdnファイル上書きで行われるため、AMPコンポーネントで予期しない不具合が発生した場合に、LTS指定する方法過去のビルドバージョンに固定する方法をまとめました。(English versin: here)

AMPコンポーネントでLTS版を指定する方法

最新のバージョンではなく、LTS(Long-Term Stable)版を指定する場合は以下のように、https://cdn.ampproject.org/lts/下のv0.jsamp-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.jsamp-carousel-0.1.jsなどのコンポーネントのjsを指定することができます。

ビルドバージョンは、ampproject/amphtmlのreleases で確認出来るyymmddhhmmss0の13桁の番号で、AMPの各jsファイル内のself.AMP_CONFIGvの値としても記載されています。

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をしていただけるとモチベーションに繋がりますので押していただけますと嬉しいです⚡️

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1