Salesforce DX(developer Experience) 是一组可简化整个开发生命周期的工具,极大的改善了团队开发和协作,促进自动化测试和持续集成,并使发布周期更加有效和敏捷。Salesforce DX做的很多设置都是创建了一个专用的临时组织(Scratch Org),在启动新项目,新功能分支或功能测试时,可以快速启动配置这样一个短期的Salesforce环境。
首先启用开发人员中心组织(Dev Hub),在setup → 搜索 Dev Hub
然后安装命令行界面(可以参考我前面的博客:Salesforce 开发新工具 - Visual Studio Code),使用Salesforce Command Line(CTL)来控制Salesforce应用程序的整个应用程序生命周期,有了它,就能轻松的创建用于开发和测试的环境,在Salesforce Org和Github等之间同步源代码,并执行测试
在TERMINAL中输入sfdx COMMADN可以查看命令
接下来就是登陆到我们的开发中心的组织
sfdx force:auth:web:login -d -a DevHub
输入Dev Hub组织用户名密码登陆,并允许CTL请求的权限,你会在CTL中看到成功授权的信息
Tips:友情提示,这个建议使用开发者账号或者Trailhead Playground账号来练习,不建议使用正式系统的账号哦
完成上述步骤后,接下来就是从GitHub上下载项目.
// 创建一个名为 my_sfdx_project 的文件夹 mkdir my_sfdx_project // 进入 my_sfdx_project 文件夹 cd my_sfdx_project // clone github上的代码 - Sales force测试项目 git clone https://github.com/dreamhouseapp/dreamhouse-sfdx.git // 直接打开 cd dreamhouse-sfdx
克隆下来的存储库包含了所有源代码在本地文件系统中,你可以对这些代码进行更新,但是在同步回GitHub的时候,记得创建自己的代码分支,有助于确保Master分支是经过校验的正确的代码,不会被错误的代码所覆盖掉
// 创建自己的Branch git checkout -b my_branch
最后就是创建并测试你的临时组织环境(Scratch Org),第一步就是更新 config/project-scratch-def.json 文件,你可以使用 cat config/project-scratch-def.json 查看可能的配置文件
使用以下命令创建临时组织,将其设置为默认组织,并为其指定别名
sfdx force:org:create -s -f config/project-scratch-def.json -a dreamhouse-org
执行上述命令后会返回组织用户名和Org Id
这样生成的临时环境,只有用户名,没有密码的,所以使用命令行可以打开这个环境:
sfdx force:org:open
这时候从新打开的Salesforce环境中,你会发现一切都是全新的,没有任何自定义的内容,所以我们可以部署从GitHub上clone下来的源代码
sfdx force:source:push
将应用程序DreamHouse部署到Scratch Org后,Salesforce提供的这个Demo是使用权限集来提供访问权限的,所以我们使用命令行分配权限集
// 分配权限集 sfdx force:user:permset:assign -n Dreamhouse
这样分配好权限后,在Org中缺少一些测试数据,我们也可以使用命令行和SObject Tree API导入数据
sfdx force:data:tree:import --plan data/sample-data-plan.json
在你创建的临时Org中,DreamHouse下的Properties对象会出现一些被导入的记录内容
如此就通过Salesforce DX成功创建了一个完整的开发环境,可以在这个环境中对功能特性进行测试,不过需要注意的一点是,既然是临时组织,那么它存在的时间就相对有一个期限,在你使用sfdx force:org:list 命令时候,能查看当前所有Org,以及你创建的临时组织存在的期限,默认情况下,临时组织会在7天后过期,除非在创建时设置了持续时间,当临时组织过期时,Salesforce会从Dev Hub组织中删除临时组织及其关联的ActiveScratchOrg记录
一个Org每天能创建的临时组织取决于Dev Hub版本,具体如下:
Edition | Active Scratch Org Allocation | Daily Scratch Org Allocation |
---|---|---|
Developer Edition or trial | 3 | 6 |
Enterprise Edition | 40 | 80 |
Unlimited Edition | 100 | 200 |
Performance Edition | 100 | 200 |
同时,临时组织是有存储限制的,200MB的数据,50MB的文件,
我们可以通过一条命令查看要查看已经分配了多少临时组织,以及剩余多少:
sfdx force:limits:api:display -u <Dev Hub username or alias>
以上是对Salesfore DX的简单学习,如有错漏可以留言交流
参考文档: