웹 패키지에서 전역 변수 정의

웹 패키지의 소스 코드를 통해 외부 JSON 등을 글로벌 변수로 읽으려는 경우

DefinePlugin 사용


webpack.config.js
const { DefinePlugin } = require("webpack");
const { readFileSync } = require("fs");

/** @type {import("webpack").Configuration} */
module.exports = {
  /***** 中略 *****/
  plugins: [
    new DefinePlugin({
      "window.GLOBAL_VARIABLES": JSON.stringify({
        env: {
          NODE_ENV: process.env.NODE_ENV,
        },
        title: "Hello, World!",
        "answer to life the universe and everything": 42,
      }),
      "window.PACKAGE": readFileSync("./package.json", { encoding: "utf8" }),
    }),
  ],
};
이렇게 하면 원본 코드에서 데이터를 가져와 전역 변수로 사용할 수 있다.
console.log(window.GLOBAL_VARIABLES);
console.log(window.PACKAGE);

좋은 웹페이지 즐겨찾기