UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

2020-06-01から1ヶ月間の記事一覧

【Storybook】GoogleMapAPIキーが必要なページ

StorybookでGoogleMapを表示しているページのプレビューを行いたい ReactプロジェクトでGoogleMapを表示している uga-box.hatenablog.com <GoogleMapReact bootstrapURLKeys={{ key: /* YOUR KEY HERE */ }} defaultCenter={this.props.center} defaultZoom={this.props.zoom} > このときの/* YOUR KEY HERE */は実際は__GOOGLE_MAP_API_KEY__という変数を使っている この変数はWebpackのDe…</googlemapreact>

【JavaScript】クリップボードにコピー

よくあるコンテンツをシェアするためのURLのコピーをJavaScriptで行いたい Twitterでいうと以下の「ツイートのリンクのコピー」をクリックしてクリップボードにコピーする機能 調べてでてきた方法は4通り Document.execCommand("copy") ClipboardEvent.clip…

【Elasticsearch】cardinalityを使ってaggregationの結果の重複をなくす

aggregationを使って集約した結果に重複がありそうだったので、この重複をなくしたい 重複を削除して集計する場合はcardinalityを使う www.elastic.co GET /language/_search?size=0 { "aggs": { "lang": { "terms": { "field": "language", "size": 10 }, "…

【Java】数字の文字列のはずがBigDecimalへの型変換でNumberFormatExceptionになる

あるAPIのレスポンスの結果で、長さの単位のフィートの項目がある このフィートの値は文字列でセットされているので、のちのち計算するためBigDecimalに型変換したい すごく単純に、以下のように型変換するだけでよいと思ったがNumberFormatExceptionが発生…

【CSS】スクロールをスムーズにする

CSS

overflow: scroll で横スクロースさせて読ませるコンテンツがiOS Safariだとカクカクする これをスムーズにする(慣性スクロールにする)やり方を毎回調べては忘れてしまうので記載しておく overflow: scroll; -webkit-overflow-scrolling: touch; developer…

【Java】StringからEnumへの変換

言語のEnumクラスを以下のように定義していたとき、文字列の"EN"や"JA"からEnumに変換したくなった public enum Language { EN("en"), JA("ja"); private final String code; Language(String code) { this.code = code; } public String getCode() { return…

【Elasticsearch】scripted fields を設けると _sourceが表示されない

ESのscripted fieldsを使って、計算した結果の一つをフィールドとして定義した際、出力結果をみるとscripted fields以外の_sourceが表示されなかった GET my-index/item/_search { "script_fields": { "my_doubled_field": { "script": { "lang": "expressio…

【Bable】@babel/polyfill は非推奨になったらしいので対応する

@babel/polyfill がBabel 7.4.0で廃止されたため非推奨になっていた babeljs.io @babel/polyfill の代わりに core-js を使用することがお勧めされている https://babeljs.io/docs/en/babel-preset-env#usebuiltins core-jsを使う async/await用にregenerator…

【Elasticsearch】Snapshot操作

ElasticsearchでSnapshotのキャンセルの仕方を毎回忘れるのでAPIをまとめてとく GCSにSnapshotをあげる 滅多にやらないので忘れがち 導入のしかたは以下 GCPでElasticsearchのGCS Repository Pluginがインストールされたカスタムイメージを作ってみる - Day-…

【HTTP】Cache-Control: no-store

あるページ回遊中にブラウザバックをすると挙動がおかしいバグに遭遇した 調べるとどうやらキャッシュしない方が良いところでキャッシュされていたのが原因のよう ところで、キャッシュをしない設定というのはCache-Control: no-storeで制御が可能だが、Cach…

【E2E】StorybookとCypressについて

Web UI の自動テストツールいわゆるE2Eテストツールの一つにCypressというのがあることを知った Storybookを活用したテストを考えていて、StorybookとJestやPuppeteerをつかったe2eテストは聞いたことがあるが、StorybookとCypressはあまり聞いたことがなか…

【Flow】Object.values(…)でFlowエラーになる

FlowでObject.valuesを使った場合、mixedの配列だと認識されてしまいエラーになる 解決策 以下の記事より、 davidwalsh.name [...(Object.values(whatever): any)] にする anyの使用が悩ましいが、実際何が返るか(返らない可能性も)考えたらanyでよいのかも

【Prettier】2.0から関数の括弧の前にスペースがつく

PrettierをつかってコードのフォーマットをしていたがPrettierのバージョンを2.xにあげたところfunctionと括弧の間にスペースが追加されることに気付いた v1.0 const fun = function() { // ... } v2.0 const fun = function () { // ... } どちらでもよいの…

【Prettier】2.0からArrow関数の引数が1つでも括弧がつく

PrettierをつかってコードのフォーマットをしていたがPrettierのバージョンを2.xにあげたところArrow関数の引数が1つでも括弧がつくようになった v1.0 a => {} v2.0 (a) => {} https://github.com/prettier/prettier/pull/7430 引数が増えた時に余計な変更…

【Gulp】gulp4.0ではremove-svg-propertiesが使えない

Gulpを使ってsvgスプライトを作っていたが、Gulpのバージョンを4にあげたところ以下のエラーが発生した ReferenceError: primordials is not defined 原因の一つがremove-svg-propertiesで、以下の記事によるとgulp4.0の場合はgraceful-fs@3系は使えないが上…

【Gulp】gulp-autoprefixerでbrowsersオプションがなくなったので.brawserlistを定義する

gulp-autoprefixerでscssからcssにトランスパイル時に自動でプレフィックスがつくようにしている github.com Gulp4にバージョンアップしたので、合わせてバージョンアップしたら次のオプションがなくなったので対応する browsers: ['last 2 versions'], brow…

vueのプロパティの形式 (キャメルケース vs ケバブケース)

フロントエンド周りのライブラリを更新しているときに、html-loaderを0.5系から1.x系にアップデートしたらvueのテンプレートがある場合に動かなくなってしまった 影響範囲は、Storybookのyarn run build-storybookを実行して出力したファイルのみ 事象はビル…

【Safari】no-store がついていてもbfcacheが有効になる

以前キャッシュが残っていたためCache-Control: no-storeをヘッダに設定する対応を行った uga-box.hatenablog.com しかし、Safariではbfcacheという訪問したページ間の戻る、進むという動作にページのロードをおこなわない機能がCache-Control: no-storeを設…

【Babel】.babelrcとbabel.config.jsの違い

Babel7にアップデートの際に、参考にしたドキュメントがbabelの設定をbabel.config.jsに記載していた これまで.babelrcに記載したのでどう使い分けるのか調べてみた https://babeljs.io/docs/en/config-files#6x-vs-7x-babelrc-loading 上記のドキュメントに…

【IntelliJ IDEA】Javaのimport文をまとめないようにする

プルリクエストを出すときに差分でJavaのimportがまとめられていることに気付いた これはIntelliJ IDEAの設定で自動でまとめており、特に害はないが他の開発者と合わせないと認識してないところに差分が出てしまう 毎度この設定の変え方を調べている気がする…

【Webpack】HMR

HMRというワードを聞いたので調査 HMRとはHot Module Replacementの略で、画面の再描画すること無しにJSの変更をブラウザに適用してくれる開発ツールのことだった そして、すでにwebpackで使っていた webpack.js.org webpackで使っているHMR SSRをしているの…

【SEO】アコーディオン表示にhidden属性を使ってみたがSEOは問題なかった

検索エンジンの歴史上で「display:none」が利用した悪質なサイトがあったため、不必要に「display:none」を使うとSEOを下げるといわれてきた そのため、アコーディオンとよばれるUI(見出しをクリックすると本文がしたからスライドしてでてくるやつ)はSEOの…