トラブルシューティング

シェルスクリプトで受け取った引数をnodeに渡すときダブルクオートで囲わないと引数が壊れる

タイトルがわかりにくすぎる。 なに cliツールを書いている。 bin/cli はシェルスクリプト。 bin/cli hogefuga --arg='volume 30' みたいなのコマンドを打ったときこのシェルスクリプトを経由して ./script.js $@ $@ の記述で、nodeのスクリプトに引数を横流…

AlexaでNature Remoを操作しようとすると「その操作には対応していません 」と言われた

技術っぽくない話。家電トラブルシューティング。 AlexaからNature Remoを通じて家電操作しようとすると、「その操作には対応していません 」と言われてうまくいかない問題に悩まされていた。 状況 具体的には天井のシーリングで、Phlips HueみたいなIoT公式…

TypeScriptでオーバーロード実装された関数を使う関数を書いていたら 「この呼び出しに一致するオーバーロードはありません。」TS(2769) と言われた

英語だと 'No overload matches this call' って言われると思う。タイトルが長い。 TS書いてて、関数の引数に Options なオブジェクトを受け取って、そのオプションのプロパティによって返り値が違うという関数を書いていた(hoge関数とする)。 で、hoge関…

yarn workspacesのnoHoistがうまくされないときあるいはnoHoist設定の罠

yarn workspacesでmonorepoを構成しているときに特定のpackageだけhoistの対象外にしたいというときがある。 そういうときにどうすればよいかというと、noHoistオプションを単に使えばいいのだけどなぜかちゃんと書いてあるつもりなのにnoHoistが効かなくて…

yarn workspacesのnoHoistがうまくされないときあるいはnoHoist設定の罠

yarn workspacesでmonorepoを構成しているときに特定のpackageだけhoistの対象外にしたいというときがある。 そういうときにどうすればよいかというと、noHoistオプションを単に使えばいいのだけどなぜかちゃんと書いてあるつもりなのにnoHoistが効かなくて…

VSCodeでonSaveしたときeslintとprettierの挙動がおかしいし重すぎるし死ぬかと思った

誇張タイトル。 そしてめっちゃくだらない内容です。 VSCodeのeslintエクステンションがv2へバージョンアップしてから "editor.codeActionsOnSave" を推奨するようになったので、その設定を適用していた。 まあ詳しくはこのQiitaの記事が詳しい。 qiita.com …

React NativeでTouchableWithoutFeedback配下のScrollViewがなぜかスクロールできないときのメモ

めっちゃハマったので知見を忘れないように書いておく。 結論: onStartShouldSetResponder ScrollViewの内側のViewのPropsにonStartShouldSetResponder={() => true}する こうなっていればスクロールできるようになるはず。 <TouchableWithoutFeedback> <ScrollView> <View onStartShouldSetResponder={() => true}> {scrollableContents} </View> </ScrollView></touchablewithoutfeedback>…

styled-componentsに独自のpropsを生やして値を渡したら怒られたときのメモ

2行 独自に生やしたpropsをまるごと渡してはいけない 分割代入でdomのattributesに定義がないpropsを間引く エラーメッセージ なんかこういう2種類のやつを言われる React does not recognize the `isAvailable` prop on a DOM element. If you intentionall…

ZEITのnow(v2)でデプロイしたらドメインaliasを最新のデプロイに追従させる

nowでホスティングしていて、例えば『hogefuga-goyani001m.now.sh』みたいなユニークURLにaliasを貼って『awesome.hogefuga.jp』でドメイン設定してあるとする。 なんか変更があってnowコマンドで再度デプロイすると新しく『hogefuga-gree002w.now.sh』のよ…

TypeScriptで"ユニオン型あるいはなにかしらの型"を表現する方法について

型定義書いていて『Union型に当てはまる場合はそのどれかだが、どれにも当てはまらなかったら"この型"』みたいなものを書きたくなるときがある。 例えば type UnionA = 'tarou' | 'jirou' | 'saburou' というUnion型があって、このUnionA型に当てはまらなか…

React hooksで再レンダリングを防ぐためにイベントハンドラをメモ化するとハンドラの外側にある変数参照値もメモされてしまう問題について

タイトルが長い! 3行 useCallback(()=> ,[])とかuseEffect(()=>,[])みたいにハンドラをメモる ムダな再レンダリングが起こるのを防ぎたい イベントハンドラ内で外部変数(例えばconst [state, setState] = useState()のstate)を参照する イベントが起こるた…

direnvで親階層の.envrcも複数読み込む

これ、またやってしまった tech-1natsu.hatenablog.com コミッタ名がおかしくなるやつ なんでやってしまったかというと、direnvでgitコミッタ名を管理しているからで、親階層にGitコミッタ名の変数を管理している.envrcを置いている。 その状況下でプロジェ…

React Hooks使って『Hooks can only be called inside the body of a function component.』って怒られる問題

まだalphaリリース(v16.7.0-alpha)のHooksを使っていたらハマった。 『Hooks can only be called inside the body of a function component.』とエラーバウンダリーの画面で怒られてしまう。 状況 親プロジェクトでHooksを用いたライブラリコンポーネントを…

VS Codeでたまに見えないスペース文字らしきものが混入して文字化けする問題、一時解決した

たまにVS Codeで文字打ってるとエディタ上では可視できない謎の1文字分のスペースらしきものが混入してしまうバグに悩まされていた。 混入していることをしらずにgit pushしたりして、GitHub上で見てみると文字化けしていたりして完全に怒り心頭でとなってい…

VS Codeでjsx,tsx書いてるとformatOnSave(保存時にフォーマットするオプション)が効かない問題

現象 Prettier走ってほしいのに、React書いててファイルがjsxあるいはtsxだとなぜか効かなくて困った。 原因はデフォルトでformatOnSaveをfalseにしていて、言語ごとにtrueにしていたからだった。 解決方法 VS Codeのsettings.jsonでこう書いていたのが原因…

fish-nvmだけ使ってたらenv: node: No such file or directoryと怒られた

気づくまで fishシェル環境にするついでにnodebrew使うのをやめてnvmに移行した。nvmはそのままでは使えないので自分はfish-nvmを使っていた。 ふとしたときからVSCodeのGit連携機能が使えなくなってしまったり、ターミナルでwhich nodeとかやってもenv: nod…

Karabiner-elementsでFor Japanese(日本語環境向けの設定)を使うとCommandキー組み合わせのショートカットが効かなくなる問題解決した

タイトルが長い。 MojaveにアップデートしてKarabiner-Elementsを入れてから困っていた。例えばブラウザでリンクを新規タブで開きたいナーっていうときに自分はCommand+クリックでやっていたけど、そういうCommand+[some]な組み合わせのショートカットが一切…

fishシェルでhub browseができない問題解決した

状況 github.com hubをbrewで入れている。 シェルはfish. gitリポジトリ上でhub browseすると exec: "google-chrome": command not found といわれてブラウザが開いてくれない。google-chromeなんてそんなコマンドはない。本来はopenコマンドが呼ばれるはず…

MacのMissionControlの速度をSierra/High Sierra/Mojaveでも高速化する方法

Mojaveに上げた。そしたらMissionControlとExposeのアニメーション速度が激遅に戻ってしまった。 僕は4本指トラックパッドの上下スワイプでこれらを切り替えるようにしているけれど、激遅になった上にかなり大きく指を動かさないとMissionControlあるいはExp…

過去のgitコミットのCommitとAuthor情報を修正する

gitのコミット情報がおかしい git logして履歴みてたりGitHubにpushしたコードをブラウザで眺めたりしてたらサムネイルが出てなかったりメールアドレスがおかしかったりコミッター名が違ってたりしてアレってなったとき。気持ち悪いので修正したい! 修正 .g…

fishシェルでrbenvのPATHを通す

zshからfishに移行していて、rbenvの移行で手こずったのでメモ 結論 fisher rbenv は使わない このプラグインメンテ止まってるっぽい ので、公式のreadmeに従って ~/.config/fish/config.fish に # rbenv set -x PATH $HOME/.rbenv/bin $PATH status --is-in…

jsdomを使ってMutationObserverをテストする方法

github.com JavaScriptでブラウザのAPIを使ったコードをテストするときはjsdomを使うと思う。大抵のDOMのAPIは揃ってるのでテストできるけどMutationObserverをテストしようとしたところjsdomはMutationObserverを持ってないのでテストできなくて困った。「M…

Node.jsのアップデートをするとnpmのグローバルモジュールが消える

タイトルのことで困っていた。 僕はNode.jsのパッケージマネージャにnodebrewを使っているのだけど、先日使おうと思ったノードモジュールが動かなかったのでNodeのバージョンかもしれないと思ってv8.4.0からv9.5.0に変えた。それでその時に気付いたけどタイ…

Travis CIでデプロイ処理でprovider: scriptするとき、複数の処理がうまくいかない

デプロイ処理でprovider: scriptしているときに複数のスクリプト処理をしたいがコケる deploy: provider: script skip_cleanup: true script: - yarn run build - yarn run test - yarn run deploy on: branch: master tags: true なぜ? Issue情報 github.c…

Travis CIで"SH: 1"とか言われnpm scriptsがコケる

sh: 1: gulp: not found と言われてコケる。原因はpackage.jsonのnpm scriptsに "scripts: { "build": "gulp hoge --production" } としつつ、.travis.ymlで deploy: provider: script skip_cleanup: true script: yarn build # run省略 on: branch: master …

VS Codeでコードスニペット補完の順番を優先させる

VS Code使っていてコードスニペットの順番が気に入らなくて困っていた。 【Visual Studio Code】Stable版 1.4リリースノート意訳しました – 好きな技術を好きと言える幸せ – AYA TOKURA BLOG 調べていたらどうもスニペットのソート順を決める設定があるっぽ…

babel+webpackな環境でESM(import構文)とCJS(module.exports構文)を混在させると『Cannot assign to read only property ‘exports’ of object ‘#<Object>’』と怒られる

前提 babel6以降 babel-plugin-transform-runtime をつかってポリフィルしている webpack2以降 自分がこういう構成なので…ほかにもなにか条件下あるかもしれない エラー内容 Cannot assign to read only property ‘exports’ of object ‘#<Object>’ webpackのコンパイ</object>…