为什么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') }) ] };
00
相似问题