注入应用的全局变量
- process.env 是 nodejs 运行环境下的全局变量,在我们的应用代码(如 src 目录下的代码)中是无法直接读取到的,如果想要在应用代码中读取到 process.env,或者如 package.json 中的数据,或其它 nodejs 环境中才有的变量,可以通过 webpack.DefinePlugin 将它们注入到应用中,将被声明为全局变量,直接读取即可。
- 如 react 脚手架,是以这种方式,将所有的 process.env 变量,全部注入到了应用代码中,所以使用 react 脚手架搭建的应用,可以直接通过
process.env.
读取到环境变量。 - 通常我们可以通过这种方式,去配置、读取系统的版本号;通过自己定义环境变量,注入到应用中,去区分编译环境。
-
示例代码:
module.exports = { ... plugins: [ // 应用中需要的 process.env 变量,在此注入才能使用。new webpack.DefinePlugin({BUILD_ENV: JSON.stringify(process.env.BUILD_ENV), // 编译环境(development/test/production)}), ], ... }