new webpack.DefinePlugin({
PRODUCTION: JSON.stringify(true),
VERSION: JSON.stringify("5fa3b9"),
BROWSER_SUPPORTS_HTML5: true,
TWO: "1+1",
"typeof window": JSON.stringify("object")
})
https://github.com/webpack/docs/wiki/list-of-plugins#defineplugin
这似乎非常不寻常,不必要并且容易发生“开发错误”。
是类型检查问题吗?
最佳答案
答案在示例下方:
IE。字符串的值将逐字插入源代码中。
传递JSON.stringify(true)
或直接传递true
都是相同的,因为非字符串值会转换为字符串。
但是,JSON.stringify('5fa3b9')
和"5fa3b9"
之间有很大的区别:
假设您的代码是
if (version === VERSION)
然后
VERSION: JSON.stringify('5fa3b9')
将导致if (version === "5fa3b9")
但是
VERSION: "5fa3b9"
将导致if (version === 5fa3b9)
这是无效的代码。
关于javascript - 为什么Webpack的DefinePlugin要求我们将所有内容包装在JSON.stringify中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39564802/