0

坦率地说,我不确定如何重现此错误。我所知道的是,在构建的某个地方,我收到以下消息:

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>,但错误仍然存​​在。我已将它放在代码导入部分的每个位置。如果我注释掉该行,则构建成功。

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

寻找解决方案,我在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">
4

1 回答 1

0

我的polymer.json文件没有包含所有必要的fragments,这是导致错误的原因。

于 2017-02-04T03:56:24.923 回答