【发布时间】:2016-05-13 11:30:11
【问题描述】:
在 Grunt 或 Gulp 中,我过去常常自己定义所有要求,例如:内容应该只在生产中被缩小,livereload 应该只在开发服务器中启用。
Webpack 通过its -d and -p options 自行处理这个问题,切换加载器的minimize 模式(大多数加载器都附带相关的缩小器)、devtool 和类似的东西(我不知道具体是什么) .其中大部分“正常工作”。
但另一方面,也有一些库具有开发和生产模式。例如,React 查看process.NODE_ENV,如果是production,则为disables the propTypes checking(稍后将被minifier 剥离为死代码,从而减少包大小)。在 Webpack 中,common way to do this is to use the DefinePlugin。
问题是,这个插件应该只在生产版本中启用。有些人因此而达到having 2 separate webpack configs。这似乎有点矫枉过正,因为大部分工作已经由 webpack 完成。我想避免这种情况。
为了找到更好的解决方案,我想了解当我使用-d 或-p 选项时到底发生了什么变化,以及它如何影响所有加载器和插件。我没有发现它记录在任何地方。现有文档仅提及“调试模式”或“监视模式”,而没有解释其实际含义。
请注意,我并不是在要求做这个做那个的答案。一个好的,详细的解释将不胜感激。
【问题讨论】:
标签: javascript webpack production-environment