博客地址:http://blog.csdn.net/FoxDave

升级SharePoint Framework项目

部署SharePoint自定制解决方案到生产环境并不意味着生命周期的结束,因为还有有新的需求或变更。在升级项目时需要考虑以下一些事情。

语义化版本(SemVer)

SPFx项目使用SemVer来跟踪版本号,其实就是我们通常所说的版本,如1.0.1,它由三部分组成:主要版本.次要版本.补丁。对于SPFx项目来说,由如下约定:

主要版本:修改不是向下兼容的

次要版本:新增向下兼容的新功能

补丁:向下兼容的bug修复

关于SemVer的更多信息可以戳这里

增长版本号

在升级SPFx解决方案时,开发者应该提升所修改部分的版本号来表明是哪个部分进行了修改。

>增长package.json文件中的包版本

SPFx包的结构跟Node.js包类似,它的依赖关系和元数据存储在项目文件夹的package.json文件中,其中就有一个version属性来表示整个项目的版本号。默认情况下,解决方案中的所有组件都继承这个版本。开发者在每次发布新版本时应该修改这个属性。

>增长package-solution.json文件中的包版本

SPFx解决方案使用.sppkg文件进行部署,该文件安装在SharePoint中的应用程序目录网站上。.sppkg文件跟SharePoint add-in包类似,将四段版本号(主版本.次版本.修订版本.编译版本)存储在config/package-solution.json文件中。为了清晰可见,开发者应该保持该版本和package.json文件的版本同步。

更新依赖引用

试想如果Angular发布了一个新版本,修复了bug并提升了性能,这时我们就需要更新我们的项目了。更新时使用命令nmp install <package>@<version> --save。注意不要手动修改package.json文件中依赖引用的版本号,这会带来不必要的麻烦和不好排插的错误。

>注意项目结构的变更

有时项目的升级可能会带来结构的变更和配置文件的变更。通常在更新项目之前,如果碰到这种情况就一定要好好比对,避免项目出现损坏。

>谨防使用npm outdated命令

找出项目中哪些依赖引用需要升级的方法之一是执行npm outdated命令。该命令会扫描你的依赖引用树并提示哪个包可以升级,很方便的命令,但是我们需要小心使用。

从举个例子。版本1.3开始,SharePoint Framework Yeoman生成器允许开发者在创建时选择项目是只在Online上运行还是Onpremise上也要运行。但是SharePoint本地的SPFx要比Online的旧,这时如果在一个需要兼容本地的项目上使用npm outdated命令,它会提示你升级到最新版本。然而,这样你的项目就无法在本地运行了。

以发布模式编译和打包项目

一旦项目通过测试,可以使用gulp bundle --ship命令以release模式编译项目。然后使用gulp package-solution --ship命令打包。注意在打包之前一定要先执行编译命令,否则包里会包含旧版本的内容。

部署解决方案的新版本

编译打包项目之后的下一步就是部署了。首先部署项目中./temp/deploy文件夹里的web部件bundle,再发布解决方案之前版本的其他文件。注意暂时不要将旧版解决方案的内容移除,因为可能会有正在使用的。每个版本的bundle文件都有唯一的名称,移除先前版本后再升级web部件会损坏当前正在使用的那些。

最后部署新的解决方案包到SharePoint应用程序目录。

SharePoint Framework 基于团队的开发(五)的更多相关文章

  1. SharePoint Framework 基于团队的开发(二)

    博客地址:http://blog.csdn.net/FoxDave 本篇介绍SPFx项目的一般开发流程.SharePoint Framework基于开源的工具链,也遵循开源技术栈中其他项目的开发流程. ...

  2. SharePoint Framework 基于团队的开发(四)

    博客地址:http://blog.csdn.net/FoxDave 确保代码一致性和质量 软件开发团队常常同项目的一致性和高质量做斗争.不同的开发者有不同的编码风格和偏好.在每个团队都有技术优秀的独立 ...

  3. SharePoint Framework 基于团队的开发(一)

    博客地址:http://blog.csdn.net/FoxDave SharePoint Framework是新的用来构建SharePoint自定制的开发模型,它专注于客户端开发并用热门的开源工具gu ...

  4. SharePoint Framework 基于团队的开发(三)

    博客地址:http://blog.csdn.net/FoxDave 用内部包进行开发 由于你的团队在开发客户端解决方案,你很可能构建通用代码库来在项目中重用.在很多情况下这种库包含的代码是内部所有的不 ...

  5. SharePoint Framework 开发工具和库

    博客地址:http://blog.csdn.net/FoxDave SharePoint Framework包含一些客户端JavaScript库,你可以用来构建自己的解决方案.本文提供了你可以用来 ...

  6. 深入浅出Docker(五):基于Fig搭建开发环境

    概述 在搭建开发环境时,我们都希望搭建过程能够简单,并且一劳永逸,其他的同事可以复用已经搭建好的开发环境以节省开发时间.而在搭建开发环境时,我们经常会被复杂的配置以及重复的下载安装所困扰.在Docke ...

  7. Wizard Framework:一个自己开发的基于Windows Forms的向导开发框架

    最近因项目需要,我自己设计开发了一个基于Windows Forms的向导开发框架,目前我已经将其开源,并发布了一个NuGet安装包.比较囧的一件事是,当我发布了NuGet安装包以后,发现原来已经有一个 ...

  8. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 SharePoint中基于Web开发

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 SharePoint中基于Web开发         之前提到过, ...

  9. SharePoint Framework (SPFx)安装配置以及开发-基础篇

    前言 SharePoint Framework(SPFx),是页面 和Webpart的模型,完全支持本地开发(即完全可以脱离SharPoint环境在本地进行开发),SPFx包含了一系列的client- ...

随机推荐

  1. TCGA一些数据库

    最出名,http://www.cbioportal.org/ 特色:最基本的简单分析基因突变.共表达/共突变的基因,下载数据也可以,最常看的应该还是oncoPrint那个. 详细用法:TCGA数据库的 ...

  2. 用户端访问centos7上面的tomcat,访问页面出现的非常的慢?

    原因:因为客户端访问centos7上面的tomcat会先 建立session连接,这个连接会用到random的随机数,在linux系统中有一个熵池的概念(熵池是一个内核参数), 他要 用熵池里面的随机 ...

  3. 2.1 maven配置多镜像地址

    背景: 自己在平时写项目用的是阿里的镜像地址,而在开发公司的项目是用的是公司提供的镜像地址,这就导致了每次使用的时候 都需要来回的修改maven的settings.xml文件,这样很容易出错,而且还浪 ...

  4. java笔记 -- 输入输出

    读取输入: 如果想通过控制台进行输入, 首先需要构造一个Scanner对象.并与'标准输入流'System.in关联. 代码见下文代码块. Sanner (InputStream in) 用给定的输入 ...

  5. 《R语言入门与实践》第七章:程序

    前言 这一章讲了程序设计的相关知识,经过了: 算法分析 编码 得到最后的程序. if 语句 格式:if (this) {that} else if { another} else { another ...

  6. Python 入门小实例笔记

    实例1:打印用户输入的姓名与手机号码知识点:编码,获取输入,变量,标准输出 #encoding=utf-8 import time #1.提示用户输入信息 name = input ("请输 ...

  7. 线性代数导论 | Linear Algebra 课程

    搞统计的线性代数和概率论必须精通,最好要能锻炼出直觉,再学机器学习才会事半功倍. 线性代数只推荐Prof. Gilbert Strang的MIT课程,有视频,有教材,有习题,有考试,一套学下来基本就入 ...

  8. 多重线性回归 (multiple linear regression) | 变量选择 | 最佳模型 | 基本假设的诊断方法

    P133,这是第二次作业,考察多重线性回归.这个youtube频道真是精品,用R做统计.这里是R代码的总结. 连续变量和类别型变量总要分开讨论: 多重线性回归可以写成矩阵形式的一元一次回归:相当于把多 ...

  9. 多组图自动无限循环(swiper轮播)

    前两天的一个项目中遇到多组图片无限轮播,当时采用了swiper 但是没有解决让它无限轮播.今天再次尝试了一下发现是自己的样式写错了.今天在这里写一下,为了给自己一个警醒不要犯同样的错误 首先先引入一下 ...

  10. 初步接触gulp

    首先是安装nodejs,通过nodejs的npm全局安装和项目安装gulp,其次在项目里安装所需要的gulp插件,然后新建gulp的配置文件gulpfile.js并写好配置信息(定义gulp任务),最 ...