uglifyify
ハマりどころ
--keep_fnames
オプション
これがないと Function.name
を消してしまう
$ browserify --verbose -t babelify -g [ uglifyify --keep_fnames ] src.js -o dest.js
例えばこういうカスタムエラーを宣言した時
error.jsclass CustomError extends Error {
constructor (message) {
super(message)
this.message = message
this.name = 'CustomError'
}
}
CustomError.name
が省略されてしまう
handle-error.jstry {
throw new CustomError('やばい')
}
catch (err) {
switch (err.name) {
case CustomError.name: {
// ここで捕まえれなくなる
}
}
}
console.log(CustomError.name)
すると "r"
とかが返ってくる
まあ instanceof
を使えばいいんだけど
ここまで書いて、deserialize-errorにそういうオプションを付けたらいいのかもしれないという事に気づいた

難しかった
deserialize-errorはsocket.io-requestの下にあるので