Node
engine
毎回書き方忘れる
^
や ~
も使える
12.x
みたいなのもいける
node で console.log を省略したくない
util.inspect
を使う
inspect.jsconst util = require("util");
console.log(util.inspect(obj, { showHidden: false, depth: null }));
Object の文字列化表現を得る
これも util.inspect
node で stacktrace を省略しない
Error.stackTraceLimit = Infinity;
Array の最後を取る
ary.pop()
破壊していいなら
ary.slice(-1)[0]
stacktrace だけ見る
console.trace()
これを増やすのも Error.stracTraceLimit
みればよい
npm --prefix / yarn --cwd
特定のディレクトリでタスク実行するのに便利。firebase.json とかでも使われている。
firebase.json"hosting": {
"predeploy": ["npm --prefix \"$RESOURCE_DIR\" run build"],
"public": "hosting/build",
...
}
yarn では --cwd
である。 $ yarn --cwd build
@ から始まる npm module
@types
@emotion
など、名前空間だけ提供して下の階層ディレクトリが個別に npm module になっているものにつける
かっこいいからつけてるわけではない(たまにかっこいいからついているものもある)
pre & post hook
prebuild
のような scripts
フィールドは build
の前に実行される
module.parent
module ロード側の module を取得できる
module.parent.require
でメンバ増やしたり module.parent.exports
で親のメンバを参照したり
module.parent.filename
で名前取得したり
delete require.cache[__filename];
などしないと複数箇所から使った場合にキャシュが利用されてうまく働かない
イベントループ
fetch is not defined
たまに node 上で動かした npm module が window.fetch を期待してることがある
global.fetch = require("node-fetch");