Polymer 2执行polymer build报错:路径重复找不到文件
解决Polymer 2 Build时bower_components路径重复问题
这种路径重复的报错,大概率是依赖引用路径写错或者配置文件异常导致的,我给你整理几个逐步排查修复的方案:
1. 检查所有HTML文件的<link rel="import">语句
这是最常见的诱因——某个组件或入口文件里的依赖引用多叠了一层bower_components。
- 全局搜索项目里所有包含
polymer-element.html的引用,重点找类似bower_components/bower_components/polymer/的错误路径 - 根据文件所在位置修正路径:
- 如果是项目根目录的入口HTML(比如
index.html),正确路径应该是:<link rel="import" href="bower_components/polymer/polymer-element.html"> - 如果是
src/子目录下的组件文件,要使用相对路径跳出当前目录:<link rel="import" href="../bower_components/polymer/polymer-element.html">
- 如果是项目根目录的入口HTML(比如
2. 排查polymer.json配置
Polymer的构建工具会依据这个文件解析依赖,错误的配置会导致路径解析混乱:
- 打开项目根目录的
polymer.json,查看sources、extraDependencies字段 - 确保这些字段里的路径没有重复写
bower_components,比如不要写成bower_components/bower_components/**/*,而是正确的bower_components/**/* - 确认
moduleResolution配置值为"none"(Polymer 2默认使用这个值),避免和Node的模块解析逻辑冲突
3. 清理bower缓存并重装依赖
缓存的异常依赖也可能导致路径解析出错:
- 先清理bower缓存:
bower cache clean - 删除现有依赖目录:
rm -rf bower_components - 重新安装依赖:
bower install
4. 检查.bowerrc配置文件
如果项目根目录存在.bowerrc,确认依赖目录配置是否正确:
- 正常的
.bowerrc应该是这样的(指定依赖安装到根目录的bower_components):
如果这个配置被误改成{ "directory": "bower_components" }bower_components/bower_components,直接改回正确值即可。
按这个顺序排查下来,基本能解决路径重复的问题。
内容的提问来源于stack exchange,提问作者Azrim
相关产品推荐
相关产品推荐

