2016-12-31 41 views
0

坦率地说,我不知道如何重现这个错误。我所知道的是,在构建地方,我得到以下信息:用google-signin建设聚合物项目的错误

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) 

../ S中的数字对应于我的项目的根,即深度,它正在搜索的绝对路径是/bower_components/google-signin/google-signin.css。如果我将项目移动到不同深度的其他目录,它会相应地改变。

的错误在这条线在我的自定义元素完全取决于主应用程序容器(即,它只有一个实例住在index.html文件,它是<body>直接子):

<link rel="import" href="../../bower_components/google-signin/google-signin.html"> 

我已经评论了<google-signin>的所有用途,但错误仍然存​​在。我把它放在代码的imports部分的每个位置。如果我注释掉该行,则构建成功。

我使用入门工具包创建了一个新项目,并在其中添加了一个<google-signin>元素。 项目通过。我将该项目中的bower_components文件夹复制到我自己的文件夹中。构建仍然失败。

寻找解决方案,我发现this answer on stackoverflow,并试图它无济于事。

我已经使用nodejsbower来自npm以及我的操作系统的包管理器。

我还应该注意,应用程序在开发服务器中是完全可用的,例如polymer serve --open

我已经发布了我的bower依赖关系。我的系统正在运行Arch Linux,最后一次完整的系统更新是昨天。在更新之前,构建也没有工作。

{ 
    "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"> 

回答

0

polymer.json文件不包含所有必要的fragments,这是造成错误。