Polymer 2未发布自定义元素在<c-elem>中的依赖配置问题
解决Polymer 2中本地未发布自定义元素的依赖问题
我之前在Polymer 2开发中也碰到过一模一样的场景,正好可以给你分享下官方推荐的标准解决方案,完美适配你的需求:
1. 用Bower本地依赖配置实现实时同步
这是Polymer处理本地未发布元素依赖的最佳实践,既不用复制文件,也能让同事协作时自动获取依赖:
- 在
<c-elem>根目录的bower.json里,给<a-elem>和<b-elem>添加本地路径依赖。假设你的三个元素目录结构是这样的:
那your-project/ ├── a-elem/ ├── b-elem/ └── c-elem/c-elem/bower.json的dependencies应该写成:"dependencies": { "a-elem": "../a-elem", "b-elem": "../b-elem" } - 运行
bower install,Bower会自动在c-elem/bower_components里创建指向本地<a-elem>和<b-elem>目录的符号链接(Windows系统可能需要管理员权限或开启符号链接支持)。
这样做的好处:
- 不用复制元素文件,
<a-elem>/<b-elem>的任何变更都会实时同步到<c-elem>的依赖中,完全不用维护多版本 bower.json会被Git追踪,同事拉取<c-elem>代码后,只要运行bower install就能自动创建符号链接,不会缺失依赖<c-elem>的Demo里的HTML导入路径依然可以用bower_components/a-elem/a-elem.html,和正常第三方依赖路径一致,不会失效
2. 多元素同仓库的备用方案(Monorepo模式)
如果你的三个元素本来就属于同一个项目,可以把它们放在同一个Git仓库的packages目录下:
your-monorepo/ ├── packages/ │ ├── a-elem/ │ ├── b-elem/ │ └── c-elem/
然后在c-elem/bower.json里依赖同级的元素:
"dependencies": { "a-elem": "../a-elem", "b-elem": "../b-elem" }
同样运行bower install创建符号链接,这样整个仓库包含所有元素,协作时拉取一次代码就能搞定所有依赖,元素变更也能实时同步。
这两种方案都完全符合Polymer的最佳实践,完美解决你提到的所有痛点~
内容的提问来源于stack exchange,提问作者Antonio Dell
相关产品推荐
相关产品推荐

