かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

2021-01-01から1年間の記事一覧

Docker Postgres DB コンテナが起動しないにハマる

Django の docker 環境をクイックスタートのドキュメントを参考に作っていたけど DB にしていされていた Postgres のコンテナが起動しなかった。 docker-compose.yml version: '3' services: # 略 db: image: postgres restart: always # 永続化 volumes: - …

brew pyenv から anyenv の pyenv に乗り換えたら python インストールでエラーになるようになった

brew pyenv を消して anyenv の pyenv で Python をインストールしようとしたら BUILD FAILED というエラーが出るようになってしまった… 環境 MacOS Big Sur (11.6.1) anyenv 1.1.2 pyenv 2.2.3-1-g423de9ae 結論 Xcode のバージョンが古かったので最新の v1…

Mac ファイルコピーする時にゴニョゴニョ変更したい

チーム作業してると開発が進むにつれて追加や変更が頻発する環境変数の扱いが悩ましいです。 .env.sample のようなキーだけ書かれたファイルを git 管理することが多いのですが、これをリネームする際にファイルに書かれている内容をゴニョゴニョしたい事が…

ts-node で path alias が効かないにハマる

結論 tsconfig-paths を使って ts-node, ts-node-dev に -r tsconfig-paths/register オプションを渡してあげれば OK

Git submodule が最新に更新されない件

$ git submodule update update やし最新に更新されるやろ…っておもったら最新にならなかった。diff をみたら最新でないコミットハッシュからチェックアウトされていました。 なんもわからん… 全 submodule を強制的にする $ git submodule foreach git pull…

Makefile で .env (環境変数)を読み込んで使いたい

make コマンドに .env にある環境変数を渡したい include .env で読み込める Makefile に include .env を書くだけで .env 内の環境変数が使える .env SECRET_KEY=HoshimiyaIchigo Makefile include .env test: echo ${SECRET_KEY} $ make test echo Hoshim…

JavaScript day.js, date-fns で実在する日付かどうか判定したい

Moment.js くんが卒業してからフロントエンドでの日付操作には day.js か date-fns を使っていました。 今回年・月・日が別々の select ボックスで日付を選択する UI があり 2月31日のような存在しない日付が選べてしまうので、存在しない日付を判定しようと…

React TypeScript で作ったアプリがビルドできないにハマる

npx create-react-app --template typescript で作成した TypeScript の React アプリでビルド時に初めて出会うエラーになってしまったのでメモ "react": "^17.0.2", "react-dom": "^17.0.2", "typescript": "^4.1.2", build 時に Could not find a required…

MacOS Big Sur Skitch 画面キャプチャしたいのに壁紙だけがキャプチャされる

画面のキャプチャに矢印や文字を直接書き込める Skitch というアプリをよく使っています。 Skitch - 撮る。描き込む。共有するSkitch仕事効率化無料 ブラウザやコードをキャプチャしようとしたらなぜか背景画像だけがキャプチャされてしまう様になってしまい…

Sass mixin の中で呼び出される @content に引数を渡したい

Tailwind の md:flex みたいなレスポンシブのクラスみないな prefix のあるクラスと楽に作れる mixin を作りたかった 環境 sass: 1.42.1 (Dart Sass) レスポンシブ用の prefix を付けたクラスを生成する _breakpoints.scss $breakpoints: ( xzs: 0, xs: 23.3…

Day.js 日付が期間内かどうか判定したい

day.js の isBetween プラグインを使う IsBetween IsBetween adds .isBetween() API to returns a boolean indicating if a date is between two other dates. cf. IsBetween · Day.js npm i datjs で既にインストールされているので、別途プラグインを impo…

TypeScript 配列の値がキーになる型を作りたい

環境: "typescript": "^4.4.4" {[key in Union]: value type} で定義できる // この配列の値がキーになるオブジェクトの型を作りたい const luminas = ['OzoraAkari', 'HikamiSumire', 'ShinjoHinaki'] as const; type LuminasValues = typeof luminas[numbe…

TypeScript Event.target, Event.currentTarget の型がむずい!

TypeScript で addEventListener のコールバック関数で Event.target, Event.currentTarget を使おうとしたら結構めんどかったのでメモ Event.target と Event.currentTarget の違い これはそもそも JavaScript の違いですが、Event.target はイベントが発生…

TypeScript Union 型に含まれる値かどうか判定したい

例えばフォーム送信で取り扱う name 属性は決まっているから name 属性が Union型が用意されていて、何かしらのイベントから event.target.name のような引数を渡された時に、フォームで取り扱う name 属性かどうかの型判定をしたいような場合。 type FieldN…

TypeScript CDN の jQuery を使いたい

テンプレートエンジンで直接 script を呼ぶ古代の環境の開発をしています。 前回 TypeScript を babel + webpack でトランスパイルできるようにしたのですが、なんとこのプロジェクトでは古の jQuery が使われていました!!!! CDN から読み込まれている j…

Webpack Babel で TypeScript を ES5 にトランスパイルしたい

JS と CSS を HTML テンプレートで読み込んでという化石な環境で開発をしています。 前回は SCSS だけ webpack でビルドする環境を作りました。 今回は Vanilla JS でブラウザ対応を考えながら書くのは流石に DX が最悪なので最低限のトランスパイルできる環…

webpack 5 CSS だけコンパイルしたい

npm script で SCSS をコンパイルしてたのだけれど、環境変数や変数展開などを多用していたら Windows 環境でエラーになりビルド出来ない問題続出してメンテコストが高くなってしまいそうだったので、ざっくり webpack で CSS だけビルドする設定を作成下の…

npm パッケージの依存しているパッケージを知りたいぞい!

npm パッケージを使っていてライブラリのアップデートが速いものは、新しくなった方法を試そうとしたら依存しているパッケージが変更になっていたりでハマってしまうことが割とあります。 このパッケージが依存してるライブラリ何?が知りたい時のメモ npm v…

Heroku に Flask のアプリをデプロイしたメモ

ちょいちょいと試せる localhost でないサーバーで検証したいことがあったので Flask のアプリを Heroku にデプロイしてみました。(DB無し) Flask アプリの準備 # 仮想環境を作成 $ python -m venv .venv # 仮想環境を実行 $ source .venv/bin/activate # Fl…

TypeScript React JSX.Element にハマる

TypeScript React の FC, VFC という型は過渡期で将来的に変更になる可能性があるからコンポーネントの返す型は JSX.Element にした方が良いという記事を読んで新しいプロジェクトでは JSX.Element を使うようにしたのですが、そこでハマったことのメモ null…

TypeScript React forwardRef の型をがんばる

react-hook-form というライブラリを使ってフォームを作っていたのですが、input や textarea が Atom レベルのコンポーネントになっており、ライブラリの都合で ref を渡す必要があったので forwardRef の型を頑張ったメモ。 "react": "17.0.2" "typescript…

Git リモートブランチのチェックアウトがエラーになる時のメモ

PR確認でリモートのブランチにチェックアウトしようとしたらエラーになってチェックアウトできなくなった。 $ git checkout -b feature/foo origin/feature/foo fatal: 'origin/feature/foo' is not a commit and a branch 'feature/foo' cannot be created …

Sass カラーバリエーションをまるっと作りたい

新規のプロジェクトとか受託案件とかの初期段階でない限りプロジェクトで使うカラーバリエーションをまるっと作る機会ってなさそうだけど機械的にカラーバリエーションを作れる方法ができたから記録として。 カラーバリエーションを生成する // デフォルトの…

npm 上位階層にある node_modules を使った npm-script を実行したい

今回も文章量に対して大変地味なエントリーです! 一つのリポジトリ内にあるディレクトリで別々に sass をコンパイルしなければならないプロジェクトがあり、ディレクトリごとにコンパイルするためのパッケージをインストールするのは管理面でも避けたかった…

フロントエンド開発環境: チーム開発するリポジトリで node のバージョンを揃えたい

チームでフロントの開発する時に node のバージョンが異なっているとインストールされるパッケージのバージョンとか依存とかで面倒なことになる可能性があるので揃えておくのが良いと思っています。 〇〇のバージョンをインストールしてください。とお願いし…

TypeScrip 配列から値の Union 型を作りたい

const soleil = ['星宮いちご', '霧矢あおい', '紫吹蘭'] みたいな配列から '星宮いちご' | '霧矢あおい' | '紫吹蘭' という配列の値の Union 型が作りたい。 typeof list[number] で配列の値の Union 型が作れる! const soleil = ['星宮いちご', '霧矢あお…

Markdown テーブルの中に | を書きたい

GitHub の PR や issue, wiki といったマークダウンでテーブルの中に Pick<Interface, 'foo' | 'bar'> とか a || b みたいに | を書きたい事が稀にあります。そのまま書くとコードで囲っても | がテーブルの区切りと判断されてしまうので、どうやったらテーブルのコンテンツに | が使え</interface,>…

Flask Flask-JWT-Extended がよしなに返してくれるエラーをカスタマイズしたい

Flask で書かれた API を使ったフロントの開発をしていました。 JWT が unauthorized になった時のエラーだけ他のエラーと形式が異なり、エラーコードも 401 で他のエラーと被ってしまっていて、フロントでエラーハンドリングが面倒なことになってしまってい…

Next.js SVG ファイルを React component として import したい!

create-react-app した React アプリでは何もしなくても SVG ファイルを import { ReactComponent as MySVGImage } from './svg/my-image.svg'; で読み込みコンポーネントとして扱うことができました。 Next.js でも同じことができると思ったのですが、creat…

Git ログのツリーをいい感じに見れるエイリアスを設定したらいい感じになった!

Git で logを見る時に開発中は git log --oneline でほぼ事足りていたのですが、 色々やるようになって tree 表示 GUI だと遅いのでターミナルでいい感じに表示したくなって設定を追加しました。 Git tree をいい感じに表示するエイリアス # 今いるブランチ…