importmap-railsは、2.x系でiOS 16.3以前のサポートを打ち切りました。 2137 views Post @wakairo 2024/02/12 21:30 最終更新 2024/05/02 17:09 問題 importmap-railsはv2.0.0で、「ネイティブでImport mapsに対応していないブラウザでImport mapsを機能させるためのshims」の利用を打ち切りました。 一方で、iOS 16.3以前に搭載されているSafariブラウザは、ネイティブではImport mapsに対応していません。 したがって、importmap-railsを1.x系から2.x系にバージョンアップすると、iOS 16.3以前のデバイスではJavaScriptを利用したRailsアプリが動かなくなります。 このことは、この打ち切りのプルリクエスト #216で議論されているように、開発陣に既に認識されており、認識した上での打ち切りとなっています。 なお、特にiOS 15は、2024-01-22にセキュリティアップデートが出ているAppleがサポートをまだ続けているOSであるにもかかわらず、最新の15.8.1へアップデートしたデバイスであってもRailsアプリが動かなくなるため要注意です。 (参考)iOS 15とiOS 16の状況 2024-01-22にセキュリティアップデートが出されているため、iOS 15以降はAppleがサポートを続けているOSであると考えられます。 こちらのWebサイトによると、2023年8月時点の国内シェアはiOS 16が85.1%、iOS 15が10.4%となっています。 こちらのWebサイトによると、2023年5月時点の全世界でのシェアはiOS 16が81%、iOS 15が13%となっています。 以上から、iOS 15とiOS 16のデバイスは、2024年2月現在まだまだ利用されていると言えます。 回避策 importmap-railsを用いたRails 7アプリで、iOS 16.3以前をサポートするには、 以下のようにjavascript_importmap_tagsの前にes-module-shimsを入れます。 詳細は、GitHubの公式リポジトリのREADMEの該当部分(Supporting legacy browsers such as Safari on iOS 15)を参照してください。 <script async src="https://ga.jspm.io/npm:[email protected]/dist/es-module-shims.js" data-turbo-track="reload"></script> <%= javascript_importmap_tags %> 参考情報 この回避策で上手く行ったという報告 @wakairo 2024/05/02 17:09 回避策が公式リポジトリのREADMEに掲載されたので、回避策のところを更新しました。
@wakairo 2024/02/12 21:30 最終更新 2024/05/02 17:09 問題 importmap-railsはv2.0.0で、「ネイティブでImport mapsに対応していないブラウザでImport mapsを機能させるためのshims」の利用を打ち切りました。 一方で、iOS 16.3以前に搭載されているSafariブラウザは、ネイティブではImport mapsに対応していません。 したがって、importmap-railsを1.x系から2.x系にバージョンアップすると、iOS 16.3以前のデバイスではJavaScriptを利用したRailsアプリが動かなくなります。 このことは、この打ち切りのプルリクエスト #216で議論されているように、開発陣に既に認識されており、認識した上での打ち切りとなっています。 なお、特にiOS 15は、2024-01-22にセキュリティアップデートが出ているAppleがサポートをまだ続けているOSであるにもかかわらず、最新の15.8.1へアップデートしたデバイスであってもRailsアプリが動かなくなるため要注意です。 (参考)iOS 15とiOS 16の状況 2024-01-22にセキュリティアップデートが出されているため、iOS 15以降はAppleがサポートを続けているOSであると考えられます。 こちらのWebサイトによると、2023年8月時点の国内シェアはiOS 16が85.1%、iOS 15が10.4%となっています。 こちらのWebサイトによると、2023年5月時点の全世界でのシェアはiOS 16が81%、iOS 15が13%となっています。 以上から、iOS 15とiOS 16のデバイスは、2024年2月現在まだまだ利用されていると言えます。 回避策 importmap-railsを用いたRails 7アプリで、iOS 16.3以前をサポートするには、 以下のようにjavascript_importmap_tagsの前にes-module-shimsを入れます。 詳細は、GitHubの公式リポジトリのREADMEの該当部分(Supporting legacy browsers such as Safari on iOS 15)を参照してください。 <script async src="https://ga.jspm.io/npm:[email protected]/dist/es-module-shims.js" data-turbo-track="reload"></script> <%= javascript_importmap_tags %> 参考情報 この回避策で上手く行ったという報告
問題
importmap-railsはv2.0.0で、「ネイティブでImport mapsに対応していないブラウザでImport mapsを機能させるためのshims」の利用を打ち切りました。 一方で、iOS 16.3以前に搭載されているSafariブラウザは、ネイティブではImport mapsに対応していません。 したがって、importmap-railsを1.x系から2.x系にバージョンアップすると、iOS 16.3以前のデバイスではJavaScriptを利用したRailsアプリが動かなくなります。 このことは、この打ち切りのプルリクエスト #216で議論されているように、開発陣に既に認識されており、認識した上での打ち切りとなっています。
なお、特にiOS 15は、2024-01-22にセキュリティアップデートが出ているAppleがサポートをまだ続けているOSであるにもかかわらず、最新の15.8.1へアップデートしたデバイスであってもRailsアプリが動かなくなるため要注意です。
(参考)iOS 15とiOS 16の状況
以上から、iOS 15とiOS 16のデバイスは、2024年2月現在まだまだ利用されていると言えます。
回避策
importmap-railsを用いたRails 7アプリで、iOS 16.3以前をサポートするには、 以下のように
javascript_importmap_tags
の前にes-module-shims
を入れます。 詳細は、GitHubの公式リポジトリのREADMEの該当部分(Supporting legacy browsers such as Safari on iOS 15)を参照してください。参考情報
回避策が公式リポジトリのREADMEに掲載されたので、回避策のところを更新しました。