我正在使用react starter工具包进行客户端编程.它使用react和webpack.没有索引.html或任何要编辑的html,所有js文件.我的问题是,如果我想从云端加载供应商js库,我该怎么做?
在html文件中很容易做到这一点.<script src="https://forio.com/tools/js-libs/1.5.0/epicenter.min.js"></script>
然而,在js文件中,它只使用npm安装的软件包.如何在没有html文件的情况下导入上述库?我try 导入并要求,它们只适用于本地文件.
2015年10月21日更新
- @minheq是的,有一个类似于react start kit的html文件.它是html.js位于src/components/Html下.我可以把云库及其所有依赖项放在那里,如下所示:
<div id="app" dangerouslySetInnerHTML={{__html: this.props.body}} />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://forio.com/tools/js-libs/1.5.0/epicenter.min.js"></script>
<script src="/app.js"></script>
<script dangerouslySetInnerHTML={this.trackingCode()} />
</body>
好消息是它可以工作,我不需要在js文件中做任何其他事情,不需要导入或要求.然而,现在我有两个以不同方式加载的jquery库.一个在这里,另一个通过npm和webpack.我不知道这以后会给我带来麻烦.如果我在浏览器窗口中键入非主路径,则我使用的react路由会给我"undefined variable"(未定义变量)错误,我猜这是由于服务器端加载造成的.所以这个解决方案不是很好.
- 使用网页外部功能.记录为:link."当您想将现有API导入Bundle 包时,也可以对应用程序使用externals选项.也就是说,您想从CDN(单独的标记)使用jquery,但仍然想在Bundle 包中要求("jquery").只需将其指定为外部:{externals:{jquery:{jquery:}."