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

用内部包进行开发

由于你的团队在开发客户端解决方案,你很可能构建通用代码库来在项目中重用。在很多情况下这种库包含的代码是内部所有的不对组织外公开的,在开发SPFx项目时,可以采用以下几种方式来应用项目中的内部库。

搭建私有包注册源

在以前,许多组织构建.NET解决方案时会搭建私有NuGet库来作为内部包的引用源地址。对于SPFx项目,它使用的是npm进行包管理,组织可以采用类似的私有注册方式来承载他们的内部包。组织内的所有项目都可以引用组织内部开发的包。

在使用私有包注册源时,组织可以选择不同的承载供应方式,在云上或者在组织内部。

使用私有包注册源允许组织集中管理在不同项目中使用的公共代码。通过定义单独的管理方案来确保代码库的高质量以促进开发团队的效率提升,而不是增加负担并拖慢了项目。

使用Visual Studio Team Services或Team Foundation Server的组织可以方便地直接在VSTS/TFS中创建一个私有的npm注册服务器。当然,如果使用其他的源代码控制系统,也可以使用其他方案来承载他们内部的包。云上比较流行的是npm Enerprise。喜欢自己承载包注册服务的组织可以选择一些开源的解决方案如SinopiaVerdaccioNexus

将包使用nmp链接进行链接

使用私有注册的一个可选方案是链接包。但是它不包括注册,需要仔细协调所有的开发者机器和构建服务器。

首先,每个开发者必须拷贝共享包到他们的机器。他们需要在命令行将路径切换到共享包的路径然后执行npm link命令。该命令会注册指定的包为该开发环境的全局包。接下来开发者需要将路径切换回项目所在路径,通过执行npm install <shared_package> --save命令来安装该包。

再强调一遍,这种方式必须在所有开发者机器和构建服务器使用npm link命令执行,否则就会出现问题。

在开发早期,同时开发共享包和项目的时候,引用链接包这种方式非常有帮助。通过这种方式你就不需要在注册源服务器上发布包的新版本以在你的项目中使用最新的代码。但是这样有一个风险需要注意,如果开发者在本地引用了某个库的一个版本而没有提交到源代码控制系统,会使团队中其他人编译失败。

私有包注册源和包链接的联合

包链接可以跟私有注册源结合使用。例如这样的场景:开发者引用链接的包,构建服务器从私有注册源获取共享库。从项目角度看没有任何变化:package.json文件中的包引用信息可以被链接的包和私有包注册源解析。要注意记得在执行编译前将最新的更改发布到私有包注册源的共享库。

由于共享库的代码使长久以来逐渐稳定下来且很少有改动的,开发者更倾向于从私有包注册源引用发布的包。

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 升级SharePoint Framework项目 部署SharePoint自定制解决方案到生产环境并不意味着生命周期的结束,因为还有 ...

  5. [翻译] Facebook HHVM 团队封闭开发三周成果展

    本人翻译的一篇文章,首发于伯乐在线. [补充信息]HipHop for PHP是一系列PHP脚本语言的程式码转换器的集合,它包含HPHPc.HPHPi.HPHPd以及HHVM,这四个脚本引擎各有所不同 ...

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

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

  7. SharePoint Framework 开发工具和库

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

  8. 基于Spring MVC的Web应用开发(三) - Resources

    基于Spring MVC的Web应用开发(3) - Resources 上一篇介绍了在基于Spring MVC的Web项目中加入日志,本文介绍Spring MVC如何处理资源文件. 注意到本项目的we ...

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

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

随机推荐

  1. P2170 选学霸

    传送门 思路: ① 可以把每个学生都看作点,而那些实力相同的学生就处在同一个连通块内,因为连通块内的同学要么都取,要么不取,所以可以将连通块缩成一个点.只需用并查集维护每个连通块的大小. ② 接着采取 ...

  2. 雷林鹏分享:YAF路由问题

    这2天休年假,在家宅着学习研究了YAF框架,用YAF做过APP接口的项目,但是没有用来做过WEB方面的应用.趁着这2天在家想把博客用YAF进行一下改版,目的也想进一步学习一下YAF. 在这过程中遇到不 ...

  3. shell脚本while read line的使用

    #### 题目要求计算文档a.txt中每一行中出现的数字个数并且要计算一下整个文档中一共出现了几个数字.例如a.txt内容如下:12aa*lkjskdjalskdflkskdjflkjj我们脚本名字为 ...

  4. Batchnorm

    Internal Covariate Shift:每一次参数迭代更新后,上一层网络的输出数据经过这一层网络计算后,数据的分布会发生变化,为下一层网络的学习带来困难(神经网络本来就是要学习数据的分布,要 ...

  5. SQL查询【根据生日计算】

    根据生日日期,获取当前年龄.年龄单位. Select Case when DateDiff(Year, BirthDate, GetDate()) > 0 then DateDiff(Year, ...

  6. 复杂的xml资源

    某些资源类型是由XML文件表示的多个复杂资源的组合.例子是一个animated vector drawable,它是一个封装了vector drawable和动画的drawable资源.这需要使用至少 ...

  7. 《c++ concurrency in action》读书笔记2--线程管理

    一.线程的启动 1. 每个c++程序至少有一个线程,是由C++ runtime启动的 2. 在c++11中,通过一个std::thread 对象启动线程.可以向std::thread传递一个函数,或者 ...

  8. PHP随机生成要求位数个字符(大小写字母+数字)

    php随机生成要求位数个字符 /** * 随机生成要求位数个字符 * @param length 规定几位字符 */ function getRandChar($length){ $str = nul ...

  9. CF数据结构练习(二)

    1. 833D Red-Black Cobweb 大意: 给定树, 边为黑色或白色, 求所有黑白边比例在$[\frac{1}{2},2]$内的路径边权乘积的乘积. 考虑点分治, 记黑边数为$a$, 白 ...

  10. Oracle扩展的统计信息

    我们在收集列的统计信息与直方图时,往往都是对某一列的收集.当谓词使用多个相关列时,会导致约束条件的冗余.这几个相关的列也被称作关联列.出现这种情况时,查询优化器也会做出不准确的判断.所以我们必须对这些 ...