エフアンダーバー

個人開発の記録

JavaScript

BabelによるTypeScriptの変換でハマる

クトゥルフTRPG ツールにてGooglebotのためにBabelを入れたので、 ついでにTypeScriptの変換もBabelに任せてしまおうと作業していたところ、 不可解な現象に悩まされたためメモ。 不可解な警告 Dexie.jsというIndexed DBのラッパーライブラリを用いて次のよ…

【JavaScript】`\0` ← ヌル文字 `\00` ← エラー

ヌル文字を表すと思っていた構文が実はヌル文字を表す構文じゃなかったという話。 コトのおこり 8進エスケープシーケンスとは? \0 はダメなのか? なぜ8進エスケープシーケンスはダメなのか? やはり \0 はダメなのか? 8進エスケープシーケンスの遺産 おわ…

【TypeScript】 Vuexもクラス形式で書きたい!!

vue-class-componentやvue-property-decorator、 vuex-classといったデコレータによるクラス形式のコンポーネント記述に感動したので、 Vuexもクラス形式で書けないかと仕組みを試作してみました。 ちなみにVuexの初心者も初心者、ほとんどドキュメントに目…

TypeScriptとVueのMixin

VueのMixinに関する(Webの世界では)一昔前の記事を読んでいて、 TypeScript 自体が Mixin 構文をサポートすればこのつらさもなくなるような気がしますが、 TypeScript 公式でこのめんどくさい Mixin のやり方を紹介しているので望みは薄いような気も……。 …

WebpackでTypeScriptのモジュール解決

TypeScriptのコンパイラオプションには baseUrl、paths、rootDirsといういくつかの特別なモジュール解決の設定があります。 しかし、これらはあくまでもTypeScriptコンパイラのための設定でWebpackやts-loaderはこれらを考慮してくれません。 そこで、Webpac…

【Webpack】 css-loader周りのSourceMap関連バグと戦う

css-loaderを使っていてSourceMapのパスが壊れるバグにハマったのでその際調べたことのまとめです。 長くなるのでタイトルに入れていませんが、 css-loader、 postcss-loader、 sass-loader辺りのバグです。 問題 原因 原因1:パスとURLの混同 原因2:相対…

SVGをCanvasに変換しようとして失敗した話

Electronでsvg要素を画像として保存したいと思い、Canvasに変換してからPNGとして保存しようと試みた結果、失敗したという話。 最終的に諦めたのでこの記事に解決策は書いてありません。 同じことをしたい人が時間を無駄にしないための記事です。 drawImage…

JavaScriptの謎コードまとめ

JavaScriptのコードを書いていて、ふと変態的コードに慣れ切った自分に気づいてしまったので、 自戒の意を込めてJavaScriptでよく使われるおかしなトリックについてまとめておきます。 他言語からきた人が首を傾げるであろうアレらです。 文法編 (function()…