TypeScript + React 17 + Webpack 5 をIE11に対応させる
- Babelは不要なはず。
- コード本体をES5にトランスパイルする設定と、Webpackでバンドル時に生成されるコードをES5にする設定が必要。
- コード中で使用してるnpmパッケージの中にES5じゃないものが含まれてるかも!
react 17.0.1typescript 4.1.2webpack 5.21.2
Expand-Archive
コマンドを使う。ページ内の情報をクリップボードにコピーしたくて、Chromeの開発者ツールのコンソールから navigator.clipboard.writeText()
を使おうとしたら DOMException: Document is not focused.
エラーが出た。
以下のように、属性セレクタに属性名だけを書けばOK。
img[width] {
/* width 属性を持っている img タグにマッチ */
}
img:not([width]) {
/* width 属性を持っていない img タグにマッチ */
}
JavaScriptの querySelector
系の関数からも同様。
// src が無い script タグ = ページ内に直接書かれている script タグのみを抽出
document.querySelectorAll('script:not([src])');
HTTP/HTTPS通信をキャプチャできるFiddler Everywhere。デフォルトではHTTPS通信のレスポンスが見られないので、見られるように設定する必要がある。
よくあるやつ 日までのみ対応
/**
* 日時1から日時2がどれだけ過去かを文字列で表現して返す
* 10秒前までなら "今"、10秒前なら "10秒前"、61秒前なら "1分前" みたいに
* @param {Date} dt1 未来
* @param {Date} dt2 過去
* @return {String} 秒>分>時間>日 のうち最小単位
*/
const getOffsetString = (dt1, dt2) => {
const offsetTs = dt1.getTime() - dt2.getTime();
if (offsetTs < 10000) {
return '今';
} else if (offsetTs < 60000) {
return `${Math.floor(offsetTs / 1000)}秒前`;
} else if (offsetTs < 3600000) {
return `${Math.floor(offsetTs / 60000)}分前`;
} else if (offsetTs < 86400000) {
return `${Math.floor(offsetTs / 3600000)}時間前`;
} else {
return `${Math.floor(offsetTs / 86400000)}日前`;
}
};