Material UIにてダイアログ内の入力欄がソフトウェアキーボードに隠れる問題を解決するための1つの方法
alpineにperfをインストールする
Node.jsのパフォーマンスを測定するために、perfをインストールしたときのメモ
環境
node:12.16.2-alpine
方法
/etc/apk/repositories
に以下のリポジトリを追加
http://dl-cdn.alpinelinux.org/alpine/edge/main # elfutils-devの0.179-r0を入れるため http://dl-cdn.alpinelinux.org/alpine/edge/testing # perfを入れるため
apkで依存関係とperfをインストールします
$ sudo apk add elfutils-dev=0.179-r0 perf
Web向けのプロジェクトに混入した@types/nodeをany化する
現象
Web向けのプロジェクトにNode.jsの型が混入し、setTimeout
などの型が壊れてビルドエラーになる
TS2322: Type 'Timeout' is not assignable to type 'number'.
これはライブラリをインストールした際、そのライブラリの型定義ファイルに@types/node
が含まれていてこのようなケースになることがあります
TypeScriptのissueに登録されていて、ワークアラウンドは提案されているものの、根本的な解決には至っていないようです
今回のゴール
- 開発中、ライブラリの型がわかる
- ビルドに失敗しない
対応策
tsconfig.json
のtypeRoots
で@types/node
の読み込み先を変えます
declare module 'node'
でNode.jsの型を上書きします
src/typings/node/index.ts
declare module 'node'
tsconfig.json
"typeRoots": ["src/typings", "node_modules/@types"],
このようにすることで、実際の@types/node
が読み込まれず、型が壊れること無くビルドができます
package.jsonの^(caret)にハマった話
背景
- vue-cliを3系から4系にアップデートしたらビルドに失敗した
ERROR Failed to compile with 1 errors Module build failed (from ./node_modules/eslint-loader/index.js): Error: Cannot find module 'eslint/lib/formatters/stylish' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15) at Function.Module._load (internal/modules/cjs/loader.js:562:25) at Module.require (internal/modules/cjs/loader.js:692:17) at require (internal/modules/cjs/helpers.js:25:18) at Object.module.exports (.../node_modules/eslint-loader/index.js:196:28)
- vue-cli 4かつESLint 6で
vue-cli-service lint
を実行するとエラー
Siderがすべて解析エラーになってしまったので対応した
日時
2020/03/05 以降
現象
- Siderの解析に失敗する
- ログを見ても特に何もエラーが出ていない
- 2020/03/08現在はエラーが出るようになってます
対策
sider.yml
にSiderがサポートしているtool以外が設定されていないか調べる
もし設定されている場合は、その設定をymlから削除する