为什么使用JSON.stringify('production')?

zst*_*amp 6 webpack

在《Webpack生产文档》中,一项建议是使用process.env.NODE_ENV的配置变量实例化对象,并带有以下推荐代码:

+     new webpack.DefinePlugin({
+       'process.env.NODE_ENV': JSON.stringify('production')
+     })
Run Code Online (Sandbox Code Playgroud)

为什么JSON.stringify('production')而不仅仅是'production'

zst*_*amp 3

在 webpack 文档的其他地方找到了答案。

根据define-plugin 文档,您必须提供嵌入引号的字符串。

T> 请注意,由于该插件执行直接文本替换,因此赋予它的值必须包含字符串本身内部的实际引号。通常,这可以使用备用引号(例如““生产””)或使用 JSON.stringify('生产') 来完成。

感谢 TheIncorrigible1 周一的玩笑。

  • 我认为他们的文档在“生产”或任何其他文字上建议“JSON.stringify()”是一个错误。它比““生产””或““真实””更冗长且可能令人困惑(这导致了最初的问题),其中引号显然是故意的。 (2认同)