此处有人知道如何将数据注入Browserify应用程序吗?
我的意思是,我使用Browserify来创建一个大的捆绑app.js文件。
但是当我的单页应用程序启动时,服务器还会在加载应用程序的HTML页面中添加一些引导数据,这样应用程序就不必向服务器发出ajax请求来获取这些数据。 / p>
现在,服务器为启动应用程序而呈现的HTML模板如下所示:
<script type="text/javascript" >
window.bootstrapData = @Html(utils.CustomSerializer.serialize(bootstrapData));
</script>
<script type="text/javascript" src="@{reactAppBaseUrl}/app.js"></script>
在app.js
(浏览器化的单页应用)中,我们使用window.bootstrapData
在Browserify包中获取该数据。
有没有优雅的方法可以做到这一点,不涉及全局变量?
答案 0 :(得分:1)
捆绑应用时,请使用-r选项启用特定服务的外部要求:
browserify -r appBootstrap > app.js
然后,在您导入捆绑包的下方的脚本标记中,需要该服务并注入数据:
<script type="text/javascript" src="@{reactAppBaseUrl}/app.js"></script>
<script>
var serializedData = @Html(utils.CustomSerializer.serialize(bootstrapData))
require('appBootstrap').load(serializedData);
</script>