共享聚合物/ web组件

时间:2016-02-01 20:52:54

标签: polymer web-component

我开始了一个项目,想要包装一个组件,然后将它分享到另一个项目,但是由于公司的限制,我不能按照文档建议将它发布到github。 我设法通过IIS共享组件,但是我不确定这是否是最好的方法,因为所需的结果是让CDN像将组件引用到应用程序中一样。

以下是代码:

  

这是我要分享的组件: base-element.html

<!-- Imports polymer -->
<link rel="import" href="bower_components/polymer/polymer.html">

<!-- Defines element markup -->
<dom-module id="base-element">
    <template>
     <h3>Hello</h3>
    </template>
    <!-- Registers custom element -->
<script>
Polymer({
    is: 'base-element',

    // Fires when an instance of the element is created
    created: function() {},

    // Fires when the local DOM has been fully prepared
    ready: function() {},

    // Fires when the element was inserted into the document
    attached: function() {},

    // Fires when the element was removed from the document
    detached: function() {},

    // Fires when an attribute was added, removed, or updated
    attributeChanged: function(attr, oldVal, newVal) {}
});
</script>
</dom-module>
  

这是 bower.json 文件:

{
  "name": "base-element",
  "private": true,
  "dependencies": {
    "polymer": "Polymer/polymer#^1.2.0"
  },
  "devDependencies": {
    "web-component-tester": "^4.0.0"
  },
  "ignore": []
}

在IIS中,我将其设置为主应用程序,然后设置一个名为client的虚拟应用程序,然后引用此html文件。

  

在客户端应用 index.html 文件中

  <script src="bower_components/webcomponentsjs/webcomponents.js"></script>
    <!-- endbower -->
    <!-- endbuild -->
    <link rel="import" href="../base-element.html"/>
  

然后在视图中我要显示组件:

<base-element></base-element>

但是,如果我能够使用 grunt serve 或其他东西来实现这一目标,那将会很好。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

一个想法,请在此处查看我对自己问题的回答How can I replace the server in Web Component Tester

这表明使用代理服务器将基本元素的请求转发到主运行服务器。 (或使用nodejs样式服务器的另一个实例)。

答案 1 :(得分:0)

看看这是否有帮助 - Using Bower as the Package Management tool for Internal, Private Libraries

您可以通过私有存储库共享您的组件,这可以作为bower依赖项包含在内。查看documentation