Polymer 如何利用100+;元素
这是启动聚合物项目的良好参考。您只需将所有元素放入Polymer 如何利用100+;元素,polymer,polymer-1.0,polymer-starter-kit,Polymer,Polymer 1.0,Polymer Starter Kit,这是启动聚合物项目的良好参考。您只需将所有元素放入app/elements文件夹。这对于中小型项目来说非常有效 当您有超过30个元素时,它会变得混乱。然后,您需要将扁平的元素文件夹重构为一个更深层次的文件夹结构,如下所示: -元素 --my-module-1 ---my-element-1-1 ---my-element-1-2 --my-module-2 ---my-submodule-2-1 ----my-element-2-1-1 ----my-element-2-1-2 ---my-su
app/elements
文件夹。这对于中小型项目来说非常有效
当您有超过30个元素时,它会变得混乱。然后,您需要将扁平的元素
文件夹重构为一个更深层次的文件夹结构,如下所示:
-元素
--my-module-1
---my-element-1-1
---my-element-1-2
--my-module-2
---my-submodule-2-1
----my-element-2-1-1
----my-element-2-1-2
---my-submodule-2-2
---- ...
有几个问题:
- 当您想要演示和测试子模块时,您需要导入每个元素定义之上的所有依赖项
- 你打破了“所有元素都是兄弟”的模式
- 您的相对路径变得混乱(大量的
)。/../../../my-module-x/my-module-y
- 你要么有很多路径,比如
,要么使用。/../../../../bower\u components
,然后你需要在你的开发服务器中有一个重定向,绝对路径会把你搞得一团糟李>/bower\u components
- 每个元素都有一个演示和测试文件夹,目录结构增长非常快
- 独立元素存储库
- 构建可重用元素
总的来说:如何扩展聚合物项目 考虑文件结构和url结构之间的差异对您的问题很有用。使web服务器将文件映射到同一位置。这就是polyserve所做的,您可以将wct配置为像它一样设置其服务器 因此,例如,当您创建单个要测试的元素时,它通常直接位于项目目录中,但web服务器将此父元素直接映射到/components中。它对bower_组件也有同样的作用,因此它们在浏览器级别上显示在同一位置。这就是为什么像../polymer/polymer.html这样的引用可以工作的原因 我在想,在您上面提出的场景中,您在每个子模块级别重复执行类似的操作,以便每个元素都可以引用polymer,或其位于
。/polymer/polymer.html
最终的结果是整个项目的“URL”结构
-components (elements mapped to this as well as bower_components)
--mymodule1
---(mapped so all directories under bower_components are mapped in here)
---myelement1.1
---myelement1.2
--mymodule2
---(mapped so all directories under bower_components are mapped in here)
---myelement2.1
---myslement2,2
IMO组织聚合物元素的关键在于设计问题/页面的解决方案。考虑为特定型号设计乐高积木。是的,您可以构建许多具有非常特定功能的部件,但最好专注于可重用性,设计较少的部件来覆盖大部分结构(基本元素),然后添加一些修补部件(修补元素)来完成模型。基本元素应该简单且非常通用 虽然润色元素不太可能被回收,但它们可以留在页面上。另一方面,基本元素应该放在一个非常靠近根目录的文件夹中,并且具有非常描述性的名称。随着开发的进行,新基本元素的使用率将降低,开发新页面所需的时间也将减少
如果设计是正确的,那么如何对图元进行分类并不重要,只要将它们放置在“bower_components”文件夹中,除非您正在构建公共聚合物图元。bower_组件中的所有内容都应由bower.json控制,因此您将删除整个文件夹,并使用
bower install
重新填充它 我们有一个提供100种元素的生产应用程序。我们发现,将文件夹中的多个元素分组以减少回购和文件夹的数量非常有用。我们仍然使所有元素成为兄弟
这在谷歌自身的元素中有一点先例。如果您查看应用程序布局和polymerfire,它们都包含多个自定义元素
思想的转变是要记住,不是每个元素都应该存在于它自己的目录中。对当前问题没有任何帮助。但是我看了一些Polymario视频,他们谈到了简化包含依赖项的使用的计划(可能自动导入所需的依赖项?)。换句话说,即使这对你来说是个问题,但在“不久”的将来可能会容易得多你可能是说?“Magic服务器直接从github提供文件”。它使拥有多个回购变得更容易一些(因为您不需要在每次更改后进行
bower更新
),但是如果您遵循标准的可重用元素方法,您仍然需要提交100个回购……这仍然会搞砸vulcanize@OlivierLangelaar我必须承认我已经不再担心硫化了,因为我使用http/2并将所有组件作为单独的负载。也有助于我延迟加载(请参见最后一个polycast)