【问题标题】:How to get <iron-icons> to work in Polymer 2.x如何让 <iron-icons> 在 Polymer 2.x 中工作
【发布时间】:2017-11-23 09:24:16
【问题描述】:

狭义问题

通过故障排除,我认为我已将“更大的问题”缩小到以下问题。 (但我可能是错的。):

如何将最新版本的&lt;iron-icons&gt; 正确下载到我的本地计算机?

“最新版本”是指通过以下方式导入的版本:

<base href="//polygit.org/polymer+:master/components/">
<link rel="import" href="iron-icons/iron-icons.html">

以上版本导入&lt;iron-icons&gt;works on my demo here.

但是,当我执行以下任一操作时:

bower install --save PolymerElements/iron-icons

bower update --save

并尝试像这样在我的本地服务器上导入:

<link rel="import" href="/bower_components/iron-icons/iron-icons.html">

它默默地失败了,我根本看不到任何图标。但我确实看到了图标应该呈现的额外空间。

更大的问题(我要解决的真正问题)

我正在尝试让我的 &lt;iron-icons&gt; 在浏览器中正确呈现。

我希望看到什么

我希望看到两个像这样的&lt;iron-icon&gt; 元素:

(锚定在其他测试元素之间:Hello World&lt;img&gt;

我实际看到的

根本没有图标。但是它们应该呈现的空白区域。

重现步骤

运行

bower install --save PolymerElements/iron-icons

或者,如果 &lt;iron-icons&gt; 已经安装:

bower update --save

然后

polyserve

polymer serve

版本

我相信我正在使用&lt;iron-icons&gt; 的 v2.0.1。 Here is the entire contents of the bower.json file.

鲍尔.json
"iron-icons": "PolymerElements/iron-icons#^2.0.1",

配置

操作系统:macOS Sierra 10.12.6
硬件:MacBook Air
浏览器:Chrome 版本 60.0.3112.113(官方版本)(64 位)

演示

Here is my Plunker demo.

代码

以下代码确实按预期呈现&lt;iron-icons&gt;

http://plnkr.co/edit/pKnrlIbGhfQPFq10aAJS?p=preview
<base href="//polygit.org/polymer+:master/components/">
<script src="webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="polymer/polymer-element.html">
<link rel="import" href="iron-icons/iron-icons.html">
<link rel="import" href="iron-icon/iron-icon.html">

<dom-module id="demo-el">
  <template>

    Hello world
    <iron-icon icon="add"></iron-icon>
    <iron-icon icon="favorite"></iron-icon>
    <img src="//lorempixel.com/400/200/" />

  </template>
  <script>
    class DemoEl extends Polymer.Element {
      static get is() {
        return 'demo-el'
      }

      constructor() {
        super();
      }

    }
    customElements.define(DemoEl.is, DemoEl);
  </script>
</dom-module>

以下代码未按预期呈现&lt;iron-icons&gt;(在本地提供):

<link rel="import" href="/bower_components/polymer/polymer-element.html">
<link rel="import" href="/bower_components/webcomponentsjs/webcomponents-lite.js">
<link rel="import" href="/bower_components/iron-icon/iron-icon.html">
<link rel="import" href="/bower_components/iron-icons/iron-icons.html">
<link rel="import" href="/bower_components/paper-input/paper-input.html">

<dom-module id="app-main">
  <template>

    Hello world
    <iron-icon icon="add"></iron-icon>
    <iron-icon icon="favorite"></iron-icon>
    <img src="//lorempixel.com/400/200/" />

  </template>
  <script>
    class AppMain extends Polymer.Element {
      static get is() {
        return 'app-main'
      }

      constructor() {
        super();
      }

    }
    customElements.define(AppMain.is, AppMain);
  </script>
</dom-module>

但是,当我直接替换以下代码时,上面的代码确实按预期呈现 &lt;iron-icons&gt;

<base href="//polygit.org/polymer+:master/components/">
<link rel="import" href="iron-icons/iron-icons.html">

<link rel="import" href="/bower_components/iron-icons/iron-icons.html">

编辑

通过使用 CDN 比较导入文件的文本

<base href="//polygit.org/polymer+:master/components/">
<link rel="import" href="iron-icons/iron-icons.html">

和本地进口:

<link rel="import" href="/bower_components/iron-icons/iron-icons.html">

我发现iron-iconset-svg.html 文件的导入版本存在差异。我的 bower.json 文件说依赖版本是 "iron-iconset-svg": "1 - 2""iron-iconset-svg": "polymerelements/iron-iconset-svg#^2.0.0" 但 bower.json 文件说依赖版本是 "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0"

所以,现在问题似乎减少到如何让本地版本的iron-icons.html 导入与在线CDN 导入版本相同的iron-iconset-svg.html 版本。

编辑 2

当我从 CDN 复制 iron-iconset-svg.html 文件并将其粘贴到我的本地文件系统时,问题仍然存在。所以,显然还有其他事情正在发生。

编辑 3

I followed the instructions here for upgrading to Polymer 2.0:

https://www.polymer-project.org/2.0/docs/upgrade#update-bower-dependencies
  1. 删除现有的 bower_components 文件夹。
rm -rf bower_components
  1. 将 bower.json 中的 Polymer 版本更新到最新版本。
Component            | Version
---------------------|--------
Polymer              | ^2.0.0
webcomponentsjs      | ^1.0.0
web-component-tester | ^6.0.0
Polymer elements     | ^2.0.0
  1. 安装新的依赖项。
bower install

这并没有解决问题。但是我无法将Polymer elements 更新为^2.0.0

鲍尔.json
"dependencies" : {
  ...
  "polymer-elements" : "^2.0.0",
  ...
}

导致了一个错误,所以也发生了:

鲍尔.json
"dependencies" : {
  ...
  "polymerelements" : "^2.0.0",
  ...
}

也是这样:

鲍尔.json
"dependencies" : {
  ...
  "PolymerElements" : "^2.0.0",
  ...
}

【问题讨论】:

  • 您的本地项目中安装了什么版本的 iron-icons?
  • @Ofisora:我相信它的 v2.0.1。 bower.json: "iron-icons": "PolymerElements/iron-icons#^2.0.1", [这里是整个 bower.json 文件。]("iron-icons": "PolymerElements/iron-icons#^2.0.1",)
  • 您的bower.json 全部内容的链接无效。
  • @Ofisora:我相信它是 v2.0.1。 bower.json: "iron-icons": "PolymerElements/iron-icons#^2.0.1", Here is the entire bower.json file. ... pastebin.com/raw/TT7e5TN8
  • @Ofisora:请阅读我刚刚添加的编辑部分。我已经取得了一些进展,并认为我已经将问题与iron-icons.html 文件导入iron-iconset-svg.html 文件隔离开来。

标签: polymer polymer-2.x iron-elements


【解决方案1】:

@Ofisora 在 cmets 中提出的解决方案对我有用 — 更新 iron-selectoriron-meta

bower install --save PolymerElements/iron-meta
bower install --save PolymerElements/iron-selector

【讨论】:

  • 未来读者请注意:我为这两个更新选择了最新版本选项。此外,清除凉亭并运行全局 bower install 不起作用。但这个解决方案做到了。
【解决方案2】:

iron-icons 是一个实用程序导入,其中包括 iron-icon 元素,iron-iconset-svg 元素,以及一个导入 用于默认图标集。

这意味着iron-icons 直接依赖于iron-iconiron-iconset-svgiron-iconiron-iconset-svg 元素都依赖于 iron-meta

当您将iron-icons 更新到最新版本时,这些元素iron-iconiron-iconset-svgiron-meta 可能不会更新,因为您将默认获得所有这些组件。因此,更新iron-meta 是解决方案之一。


此外,当您在聚合物中安装或更新元素时​​,您将看到如下消息:

找不到适合 Iron-icons 的版本,请选择一个 输入以下数字之一:

始终根据您拥有的其他元素选择合适或最新的版本。

完成更新或安装后,您会看到如下注释:

Please note that,
    iron-iconset-svg#a47e824859 depends on iron-meta#2.0-preview which resolved to iron-meta#7404b31da3
    iron-icon#1.0.13, iron-icon#1.0.13, iron-icon#1.0.13, iron-iconset-svg#1.1.2, iron-iconset-svg#1.1.2 depends on iron-meta#^1.0.0 which resolved to iron-meta#1.1.3
    iron-icon#2.0.0, iron-iconset-svg#2.0.0 depends on iron-meta#1 - 2 which resolved to iron-meta#2.0.2

确保您已阅读此内容并安装/更新所需的依赖项。


注意:就我而言,我还必须更新iron-selector,因为我在iron-selector 中使用了iron-icon

【讨论】:

    猜你喜欢
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多