前にesbuildを試してみたけど、
ビルド時にprocess.env
とかを解決したいなと思い、
いろいろ調べてみたときの備忘録(*´ω`*)
esbuildのdefineでできるっぽい(*´ω`*)
Defineの使い方
公式の例だとこんな感じ。変数の値を固定したうえで、minifyしてくれる。
$ echo 'hooks = DEBUG && require("hooks")' | esbuild --define:DEBUG=true hooks = require("hooks"); $ echo 'hooks = DEBUG && require("hooks")' | esbuild --define:DEBUG=false hooks = false;
JavaScript/TypeScriptだとこんな感じ。
// exbuildの設定 const ctx = await context({ // ...略 define: { DEBUG: 'true' }, });
process.env
を解決する
process.env.NODE_ENV
を解決する場合はこんな感じ。
// exbuildの設定 const ctx = await context({ // ...略 define: { "process.env.NODE_ENV": '"production"', // or "process.env.NODE_ENV": `"${process.env.NODE_ENV}"` }, });
defineはそのまま置き換えるだけなので、
文字列の場合は、"..."
という感じで、
ダブルクオーテーションで囲む必要がある。
以上!! esbuild、便利だ。。(*´ω`*)