博客地址:http://blog.csdn.net/FoxDave
用内部包进行开发
由于你的团队在开发客户端解决方案,你很可能构建通用代码库来在项目中重用。在很多情况下这种库包含的代码是内部所有的不对组织外公开的,在开发SPFx项目时,可以采用以下几种方式来应用项目中的内部库。
搭建私有包注册源
在以前,许多组织构建.NET解决方案时会搭建私有NuGet库来作为内部包的引用源地址。对于SPFx项目,它使用的是npm进行包管理,组织可以采用类似的私有注册方式来承载他们的内部包。组织内的所有项目都可以引用组织内部开发的包。
在使用私有包注册源时,组织可以选择不同的承载供应方式,在云上或者在组织内部。
使用私有包注册源允许组织集中管理在不同项目中使用的公共代码。通过定义单独的管理方案来确保代码库的高质量以促进开发团队的效率提升,而不是增加负担并拖慢了项目。
使用Visual Studio Team Services或Team Foundation Server的组织可以方便地直接在VSTS/TFS中创建一个私有的npm注册服务器。当然,如果使用其他的源代码控制系统,也可以使用其他方案来承载他们内部的包。云上比较流行的是npm Enerprise。喜欢自己承载包注册服务的组织可以选择一些开源的解决方案如Sinopia或Verdaccio或Nexus。
将包使用nmp链接进行链接
使用私有注册的一个可选方案是链接包。但是它不包括注册,需要仔细协调所有的开发者机器和构建服务器。
首先,每个开发者必须拷贝共享包到他们的机器。他们需要在命令行将路径切换到共享包的路径然后执行npm link命令。该命令会注册指定的包为该开发环境的全局包。接下来开发者需要将路径切换回项目所在路径,通过执行npm install <shared_package> --save命令来安装该包。
再强调一遍,这种方式必须在所有开发者机器和构建服务器使用npm link命令执行,否则就会出现问题。
在开发早期,同时开发共享包和项目的时候,引用链接包这种方式非常有帮助。通过这种方式你就不需要在注册源服务器上发布包的新版本以在你的项目中使用最新的代码。但是这样有一个风险需要注意,如果开发者在本地引用了某个库的一个版本而没有提交到源代码控制系统,会使团队中其他人编译失败。
私有包注册源和包链接的联合
包链接可以跟私有注册源结合使用。例如这样的场景:开发者引用链接的包,构建服务器从私有注册源获取共享库。从项目角度看没有任何变化:package.json文件中的包引用信息可以被链接的包和私有包注册源解析。要注意记得在执行编译前将最新的更改发布到私有包注册源的共享库。
由于共享库的代码使长久以来逐渐稳定下来且很少有改动的,开发者更倾向于从私有包注册源引用发布的包。