实在不清楚设置webpack.DefinePlugin有啥用

实在不清楚设置webpack.DefinePlugin有啥用

把webpack的mode配置项设置为development,process.env.NODE_ENV的值就是development

把webpack的mode配置项设置为production,process.env.NODE_ENV的值就是production


那么再设置这个webpack.DefinePlugin到底有啥用啊?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
Mercury09 2021-04-15 23:27:51

举例一个有用的场景:开发环境需要使用dev server的数据,而生产环境是来自production server的数据。

那么就可以用DefinePlugin定义一个变量(比如命名为_ENDPOINT_),使用process.env.NODE_ENV作为条件赋值_ENDPOINT_(比如接口的URL)。然后在你的代码中就可以引用_ENDPOINT_变量了。


Brian 2021-02-10 23:25:58

那么再设置这个webpack.DefinePlugin到底有啥用啊?——扩展学习,除了可以定论NODE_ENV,还可以定义很多打包过程中使用的常量:

https://webpack.docschina.org/plugins/define-plugin/


PS: 还有一个webpack属性叫:EnvironmentPlugin,同样可以定义NODE_ENV

  • 提问者 慕九州5038668 #1

    老师的意思是打包时候,webpack.config.js配置文件里没有NODE_ENV这个环境变量,通过DefinePlugin可以在配置文件中设置NODE_ENV,从而在单个配置文件区分开发环境、生产环境。


    请问老师,是这样吗?


    感觉我好想理解不对....

    2021-02-11 10:30:34
  • Brian 回复 提问者 慕九州5038668 #2

    打包时候,webpack.config.js配置文件里没有NODE_ENV这个环境变量

    ——是的,不过你设置了mode之后,webpack会有默认的行为,跟你提问的理解是一致的“mode配置项设置为development,process.env.NODE_ENV的值就是development



    通过DefinePlugin可以在配置文件中设置NODE_ENV,从而在单个配置文件区分开发环境、生产环境

    ——对的,从而在项目中通过NODE_ENV变量来进行区分,这个就是这些打包常量的作用之一,还有的作用,就是可以做一些打包替换。

    2021-02-17 09:47:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师