EnvironmentPlugin
EnvironmentPluginì ì¬ì©í´ process.env í¤ì DefinePluginì ê°ë¨í ì ì©í ì ììµëë¤.
Usage
EnvironmentPluginì í¤ë¡ 구ì±ë ë°°ì´ í¹ì í¤ì 기본ê°ì´ 매íë ê°ì²´ë¥¼ ë°ìµëë¤.
new webpack.EnvironmentPlugin(["NODE_ENV", "DEBUG"]);ì´ë ë¤ìê³¼ ê°ì DefinePlugin ì ì©ê³¼ ëì¼í©ëë¤.
new webpack.DefinePlugin({
"process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV),
"process.env.DEBUG": JSON.stringify(process.env.DEBUG),
});Usage with default values
ëë, EnvironmentPluginì í¤ì 기본ê°ì 매íí ê°ì²´ë¥¼ ì§ìí©ëë¤. í¤ê° process.envì ì ìëì§ ìì ê²½ì°ìë 기본ê°ì ì¬ì©í©ëë¤.
new webpack.EnvironmentPlugin({
NODE_ENV: "development", // process.env.NODE_ENVê° ì ìëì§ ìì ê²½ì° 'development'를 ì¬ì©íì¸ì.
DEBUG: false,
});Example:
ì§ê¸ê¹ì§ 구ì±í´ì¨ EnvironmentPlugin ì¤ì ì í
ì¤í¸ íì¼ entry.jsì ì ì©íì ë ì´ë»ê² ëìíëì§ ììë´
ìë¤.
if (process.env.NODE_ENV === "production") {
console.log("Welcome to production");
}
if (process.env.DEBUG) {
console.log("Debugging output");
}ë¹ëí기 ìí´ í°ë¯¸ëìì NODE_ENV=production webpackì ì¤ííì ë entry.jsë ë¤ìê³¼ ê°ìµëë¤.
if ("production" === "production") {
// <-- NODE_ENVì 'production'ì´ ì¬ì©ë©ëë¤.
console.log("Welcome to production");
}
if (false) {
// <-- 기본ê°ì´ ì¬ì©ë©ëë¤.
console.log("Debugging output");
}DEBUG=false webpackì ì¤ííë©´ ë¤ìê³¼ ê°ìµëë¤.
if ("development" === "production") {
// <-- 기본ê°ì´ ì¬ì©ë©ëë¤.
console.log("Welcome to production");
}
if ("false") {
// <-- DEBUGì 'false'ê° ì¬ì©ë©ëë¤.
console.log("Debugging output");
}Use Case: Git Version
ë¤ìê³¼ ê°ì EnvironmentPlugin ì¤ì ì ì ì¥ìì ë§ì§ë§ 커ë°ì ë°ë¥¸ process.env.GIT_VERSION (ìì "v5.4.0-2-g25139f57f")ê³¼ process.env.GIT_AUTHOR_DATE (ìì "2020-11-04T12:25:16+01:00")를 ì ê³µí©ëë¤.
import childProcess from "node:child_process";
function git(command) {
return childProcess.execSync(`git ${command}`, { encoding: "utf8" }).trim();
}
new webpack.EnvironmentPlugin({
GIT_VERSION: git("describe --always"),
GIT_AUTHOR_DATE: git("log -1 --format=%aI"),
});DotenvPlugin
ì¨ë íí° DotenvPlugin (dotenv-webpack)ì ì¬ì©í´ dotenv ë³ì를 ì¬ì©í ì ììµëë¤.
// .env
DB_HOST=127.0.0.1
DB_PASS=foobar
S3_API=mysecretkeynew Dotenv({
path: "./.env", // env íì¼ ê²½ë¡ (기본ê°)
safe: true, // .env.example ë¡ë (기본ê°ì dotenv-safe를 ì¬ì©íì§ ìë "false")
});


