【问题标题】:SPFX sharepoint DeploymentSPFX 共享点部署
【发布时间】:2019-06-27 21:13:18
【问题描述】:

我已将 spfx 部署到在线共享点。我首先运行 gulp bundle --ship 并再次运行 gulp package-solution --ship。我已将捆绑文件上传到清单文件中提到的站点资产路径。我已经上传到应用目录的包文件。

现在如果我必须修改现有代码,我应该再次运行两个命令并上传文件吗?我看到捆绑文件生成具有不同版本名称的文件名。

【问题讨论】:

    标签: spfx


    【解决方案1】:

    根据我的经验,这是正确的。

    捆绑文件根据其内容附加了一个哈希,以区分脚本的两个版本。这使浏览器更容易在可用时获得新版本。 Waldek 写了a nice brief explanation 说明他们为什么这样做。

    请注意,当您上传新的包文件时,包含您的 Web 部件的任何页面将立即开始指向 版本的捆绑文件。为了获得最佳体验,我建议先上传捆绑文件,然后上传包文件,以避免用户在您以相反方式上传时在短时间内遇到任何 Web 部件错误。

    【讨论】:

    • 我们可以删除捆绑文件中的序列号并上传吗?每当我们进行更改时,我们是否应该同时上传包和捆绑文件?
    • 您可以从捆绑文件中删除哈希,但您必须在运行bundle 之后 运行package-solution之前 运行package-solution,否则,该软件包将期待带有哈希的捆绑文件,并在找不到它们时抱怨。对于您的第二个问题,是的,您应该两者都做。
    • 编辑:实际上,似乎不可能以这种方式删除哈希!执行此操作后,我尝试加载 Web 部件,但它仍在请求脚本文件的散列版本。如果您真的想删除哈希(同样,他们添加它的理由很充分),您可以检查 this method 是否仍然有效。
    • 因为我们有另一个 spfx 项目,每当我们对代码进行任何更改时,我们只需通过删除哈希来上传捆绑文件。我们不会在目录中上传包。这只是他们上传的一次。我们总是修改代码和 gulp --ship uopload 捆绑文件数据。我只是想知道如何实现它。我找不到任何来源
    • 这个项目是由微软开发的。不知道他们是怎么做到的
    【解决方案2】:

    您可以在您的 package-solution.json 文件中添加 "includeClientSideAssets": true" ,您无需手动部署您的资产。您只需部署 .sppkg 包即可。 您甚至可以使用 cmd 中的 o365 cli 部署它。在我们的环境中,我创建了 gulp 任务,它首先修改当前版本,然后绑定并部署它。

    在 SPFx v1.4 中引入了 includeClientSideAssets 属性

    【讨论】:

      【解决方案3】:

      每次我们修改/添加任何更改时,我们都应该运行 gulp bundle --ship、gulp package-solution --ship 命令并部署 .sppkg 包

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-02
        • 1970-01-01
        • 2021-03-24
        • 1970-01-01
        • 2012-02-08
        • 2013-07-27
        相关资源
        最近更新 更多