坦白地说,我不知道如何重现这个错误。我所知道的是,在构建的某个地方,我得到了以下信息:
debug: accept: ../../../../../../bower_components/google-signin/google-signin.css
error: Promise rejection: Error: file path is not in root: /bower_components/google-signin/google-signin.css (/path/to/project/root)
error: Error: file path is not in root: /bower_components/google-signin/google-signin.css (/path/to/project/root)
at Object.urlFromPath (/usr/lib/node_modules/polymer-cli/node_modules/polymer-build/lib/path-transformers.js:41:15)
at StreamAnalyzer.getFile (/usr/lib/node_modules/polymer-cli/node_modules/polymer-build/lib/analyzer.js:107:39)
at StreamResolver.accept (/usr/lib/node_modules/polymer-cli/node_modules/polymer-build/lib/analyzer.js:210:34)
at FileLoader.request (/usr/lib/node_modules/polymer-cli/node_modules/hydrolysis/lib/loader/file-loader.js:64:27)
at Vulcan.<anonymous> (/usr/lib/node_modules/polymer-cli/node_modules/vulcanize/lib/vulcan.js:377:26)
at Array.map (native)
at Vulcan.inlineCss (/usr/lib/node_modules/polymer-cli/node_modules/vulcanize/lib/vulcan.js:365:33)
at Vulcan.<anonymous> (/usr/lib/node_modules/polymer-cli/node_modules/vulcanize/lib/vulcan.js:486:21)../的数量对应于我的项目根的深度,即它正在搜索的绝对路径是/bower_components/google-signin/google-signin.css。如果我将项目移动到不同深度的不同目录,它就会相应地发生变化。
错误完全取决于我的主app容器自定义元素中的一行(即它的一个实例驻留在index.html文件中,它是<body>的直接子实例):
<link rel="import" href="../../bower_components/google-signin/google-signin.html">我已经注释掉了<google-signin>的所有使用,但是错误仍然存在。我把它放在代码导入部分中的每个位置。如果我注释掉这一行,构建就成功了。
我使用初学者工具包创建了一个新项目,并向其中添加了一个<google-signin>元素。建筑工程通过了。我将bower_components文件夹从该项目复制到自己的项目中。构建仍然失败。
在寻找解决方案时,我找到了this answer on stackoverflow,并尝试了一下,但没有结果。
我使用了来自nodejs和bower的npm以及操作系统的包管理器。
我还应该注意到,应用程序在开发服务器(例如,polymer serve --open )中具有完全的功能。
我已经在下面发布了我的bower依赖项。我的系统正在运行Arch,最后一次完整的系统更新是在昨天。在更新之前,构建也无法工作。
{
"name": "PROJECT_NAME",
"description": "Web Front-end for PROJECT_NAME",
"main": "index.html",
"dependencies": {
"iron-elements": "PolymerElements/iron-elements#^1.0.10",
"paper-elements": "PolymerElements/paper-elements#^1.0.7",
"app-elements": "PolymerElements/app-elements#^0.10.1",
"google-signin": "GoogleWebComponents/google-signin#^1.3.7"
},
"devDependencies": {}
}此外,以下是文件使用的完整导入列表:
<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../../bower_components/font-roboto/roboto.html">
<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
<link rel="import" href="../../bower_components/google-signin/google-signin.html">
<link rel="import" href="../../bower_components/app-layout/app-drawer-layout/app-drawer-layout.html">
<link rel="import" href="../../bower_components/app-layout/app-drawer/app-drawer.html">
<link rel="import" href="../../bower_components/app-layout/app-header-layout/app-header-layout.html">
<link rel="import" href="../../bower_components/app-layout/app-header/app-header.html">
<link rel="import" href="../../bower_components/app-layout/app-toolbar/app-toolbar.html">
<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
<link rel="import" href="../../bower_components/paper-dialog/paper-dialog.html">发布于 2017-02-04 03:56:24
我的polymer.json文件没有包含所有必需的fragments,这导致了错误。
https://stackoverflow.com/questions/41411693
复制相似问题