为什么esm下不使用replace去替换process.env.NODE_ENV

来源:14-6 Rollup 打包 UMD 格式第二部分

FDirector

2025-03-21

老师您好,您说umd下process.env.NODE_ENV是打包产物中的常见问题,需要用replace插件替换。
那不需要担心在esmodule下,process.env.NODE_ENV的值非法么?比如在用户的环境下,NODE_ENV是一个乱填的值,甚至是没有NODE_ENV。

另外,如果用webpack打包,是否就能避免umd打包产物下出现process.env.NODE_ENV的问题呢?

写回答

1回答

张轩

2025-03-21

同学你好

很好的问题,因为现代的构建工具 比如 vite 或者 webpack 都会注入环境变量的,所以一般不会出现这个问题,当然也可以使用 replace,这样就可以完全杜绝这个问题。

至于 webpack,假如我没记错的话,应该也是需要 DefinePlugin 的:

const webpack = require('webpack');

module.exports = {
  plugins: [
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('production')
    })
  ]
};


0
0

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2136 学习 · 959 问题

查看课程