在执行通用的服务器端呈现的Javascript Web应用程序时,如何在客户端和服务器之间共享公共常量?
使用Webpack的DefinePlugin
new webpack.DefinePlugin({
PRODUCTION: JSON.stringify(true),
VERSION: JSON.stringify("5fa3b9"),
})
请注意,此插件会将这些值从字面上注入到页面中。这意味着如果您执行以下操作:
new webpack.DefinePlugin({ FOO: "BAR" });
然后,Webpack将从字面上插入:
var FOO = BAR;
这会出错,因为裸字符串BAR
看起来像一个不存在的变量。这就是为什么该示例显示了大多数包裹在JSON.stringify中的东西的原因,它返回带引号的值,因此插入
new webpack.DefinePlugin({ FOO: JSON.stringify("BAR") });
将正确插入:
var FOO = "BAR";
是的,这是很糟糕的设计。Webpack的API是一个雷区。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句