我正在使用React JS为SharePoint在线开发一个SPFX应用程序(SharePoint Framework(。一切都很好,直到我的应用程序的大小超过100MB。现在,尽管我可以将应用程序上传到我的应用程序目录网站,但我无法更新我的网站集中的应用程序。当我尝试时,我得到以下错误:
包流超过允许的最大长度"104857600"字节
我正在使用Gulp Bundle-ship和Gulp包解决方案-ship命令来打包我的解决方案。有没有更有效的生产包装方式?也许是一种包文件不会变得那么大的方法?
经过几个小时的试用,我们找到了解决这个问题的解决方案。最初问题的答案仍然未知,即我还没有找到如何添加大于100MB的应用程序。但我已经找到了一个解决方案,可以解释为什么这个应用程序一开始就超过100MB。分享它,这样它可能会帮助像我这样刚开始React SPFX开发的其他人。
问题
我的项目完全没有媒体文件(没有图像,没有视频(。因此,令人费解的是,该包超过100MB。不过,我有超过25个组件和5个web部件。我通常启动我的工作台(使用GulpServe(并不断进行更改,直到它可以构建为止。然后我停止Gulp Serve并运行我的构建命令(Gulp Bundle-ship&Gulp Package Solution-ship(。它所做的是在每次构建时增加.sppkg文件的大小。它还增加了上传和检查应用程序到应用商店的痛苦延迟(在最坏的情况下几乎需要10分钟(。然后,当包超过100MB时,您就不能再在网站集中更新它了。
解决方案
我偶然发现了"Gulp Clean",并想试一试。我在我的构建命令之前运行了它,瞧!几分钟前的软件包是100MB,现在是1.3MB(很明显,因为我的解决方案只包含.ts、.tsx和.scss文件(。现在,在应用商店中更新我的应用程序不到一分钟。
所以我每次需要的时候都创建了一个bat文件来构建我的包。bat文件的内容如下所示:
call gulp clean
call gulp bundle -ship
call gulp package-solution --ship
其他参考
我发现Waldek Mastykarz的这篇帖子太晚了。尽管在他的帖子中使用"Clean"的原因与我的不同,但如果我早点看到的话,我会节省几个小时。
警告
我仍在详细研究Gulp Clean,不能确定它是否没有副作用。