Managed Packages — Add, Configure & Licensing

DEX475 - Use Components in Salesforce Targets

📄 第 325 页 🎬 视频课程

课程章节介绍

好,我们来聊聊托管包和AppExchange分发的一些关键点。你把它想象成把自己的组件打包成商品,放到官方商店去卖,这个打包方式就叫托管包,AppExchange就是它的分发渠道。 现在推荐用第二代托管包,也就是2GP,这是比较现代的做法。包发布以后,组件的名字就锁死了,不能再改,但有些元数据是可以编辑的,比如API版本、描述、标签这些。还有个属性叫isExposed,只能从false改成true,反过来不行。另外像目标配置masterLabel、targetConfig相关的targets这些也能调整。 这里要特别留意isExposed这个开关,它控制着组件能不能在Lightning App Builder这类工具里被看到和使用。如果isExposed是false,组件锁得没那么死,你可以随便删除它的目标和属性。但一旦isExposed设为true,而且包已经发布了,那目标和@api属性就永久锁定了,不能删不能改,不然会破坏已有部署。 还有个常见的坑是关于许可检查的。Lightning Web Components本身不会自动去验证用户有没有买你们包的授权。如果你是ISV合作伙伴,得自己在Apex里用userinfo.isClientUserLicensed这个方法来手动判断,发现用户没授权就得显示合适的提示消息,不能让他们白用。 那如果确实需要删除一个已经暴露出去的组件怎么办?对于isExposed=true的组件,得用两步走的删除流程,先让组件不可用,再在后续版本里彻底移除。而且注意,已经安装到客户组织里的组件还是会留在那里,成为所谓的“收件箱组件”,删不掉的。 你们在自己代码里引用托管包里的组件时,要注意加命名空间前缀,然后用短横线连接的小写形式,也就是kebab-case。比如你的命名空间是abc,一个叫mycomponent的组件,就写成abc-my-component这样引用。 最后别忘了,包发布前一定要同时用NPS和LWS两种模式做好测试,确保在不同运行环境里都没问题。这些点都记牢,以后发包就能少踩坑了。

关键词

LWC Lightning Web Components Salesforce