【发布时间】:2019-06-27 21:13:18
【问题描述】:
我已将 spfx 部署到在线共享点。我首先运行 gulp bundle --ship 并再次运行 gulp package-solution --ship。我已将捆绑文件上传到清单文件中提到的站点资产路径。我已经上传到应用目录的包文件。
现在如果我必须修改现有代码,我应该再次运行两个命令并上传文件吗?我看到捆绑文件生成具有不同版本名称的文件名。
【问题讨论】:
标签: spfx
我已将 spfx 部署到在线共享点。我首先运行 gulp bundle --ship 并再次运行 gulp package-solution --ship。我已将捆绑文件上传到清单文件中提到的站点资产路径。我已经上传到应用目录的包文件。
现在如果我必须修改现有代码,我应该再次运行两个命令并上传文件吗?我看到捆绑文件生成具有不同版本名称的文件名。
【问题讨论】:
标签: spfx
根据我的经验,这是正确的。
捆绑文件根据其内容附加了一个哈希,以区分脚本的两个版本。这使浏览器更容易在可用时获得新版本。 Waldek 写了a nice brief explanation 说明他们为什么这样做。
请注意,当您上传新的包文件时,包含您的 Web 部件的任何页面将立即开始指向 新 版本的捆绑文件。为了获得最佳体验,我建议先上传捆绑文件,然后上传包文件,以避免用户在您以相反方式上传时在短时间内遇到任何 Web 部件错误。
【讨论】:
bundle 之后 运行package-solution 而之前 运行package-solution,否则,该软件包将期待带有哈希的捆绑文件,并在找不到它们时抱怨。对于您的第二个问题,是的,您应该两者都做。
您可以在您的 package-solution.json 文件中添加 "includeClientSideAssets": true" ,您无需手动部署您的资产。您只需部署 .sppkg 包即可。 您甚至可以使用 cmd 中的 o365 cli 部署它。在我们的环境中,我创建了 gulp 任务,它首先修改当前版本,然后绑定并部署它。
在 SPFx v1.4 中引入了 includeClientSideAssets 属性
【讨论】:
每次我们修改/添加任何更改时,我们都应该运行 gulp bundle --ship、gulp package-solution --ship 命令并部署 .sppkg 包
【讨论】: