问题标签 [polymer-3.x]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
polymer - 将聚合物 2 覆盖到聚合物 3:调制器内存不足?
我正在尝试使用聚合物调制器将 Polymer 2 项目转换为 Polymer 3,但出现内存不足的错误。我需要做什么才能继续前进?
我在终端运行了这个命令:
我收到了一个错误,其中包括以下内容
(平均 mu = 0.061,当前 mu = 0.024)分配失败
...
...接近堆限制分配失败 - JavaScript 堆内存不足
javascript - 将函数作为参数传递给子组件聚合物 3
我是 Polymer 的新手,并开始使用名为 Polymer 3 - Code like a Google developer 的课程来学习它。
我想调用函数:addContactClick()
从子组件:side-menu
。
为此,我将函数作为参数传递。我在 中定义了它side-menu
并使用它调用它on-click
开始-polymer3.js:
侧面菜单.js:
当我执行它时,我收到以下错误:listener method addContactClick not defined
handler @ template-stamp.js:92
polymer - Polymer 3.0.5 - “DOMException:无法在‘CustomElementRegistry’上执行‘define’”
我不认为这是一个重复的问题。我只将@polymer/polymer 作为依赖项安装并导入到我的供应商包中(没有@polymer/paper-input)。我正在使用 v3.0.5,我什至没有在依赖树中看到 iron-meta(通过 npm 列表),而且我的堆栈跟踪看起来不同 - 它指向 polymer/lib/elements/dom-module.js
dom-module.js:178 未捕获的 DOMException:无法在“CustomElementRegistry”上执行“定义”:此名称已用于此注册表
跟踪指向这条线customElements.define('dom-module', DomModule);
在@polymer/polymer/lib/elements/dom-module.js?:178:16
我正在尝试设置一个基本的 Polymer 3 项目。我正在使用带有 babel-loader 的 Webpack 来编译到 es5。因为我正在编译到 es5,所以我将custom-elements-es5-adapter.js
按照webcomponentsjs repowebcomponents-bundle.js
上的说明包括在内。这些脚本只是从 node_modules 复制到输出目录,并且脚本标签包含在 html 头中。
至于我的组件代码,我正在为每个聚合物组件创建单独的 js 块,并为当前仅包含 Polymer 的共享导入创建单独的块。编译和代码拆分工作没有错误,生成的块被添加到结束 body 标记之前的 html 中。
Webpack SplitChunks 插件将@polymer/polymer
导入拉到单独的块中,以便它们只包含一次。
目标是将所有必需的供应商代码提取到一个通用脚本中,并且每个组件都在它自己的一小部分中,可以有选择地包含在内。
- my-common.js(共享/公共块)
- my-button.js(组件块)
- my-tabs.js(组件块)
- ...更多组件块
使用我当前的设置,这些块似乎已正确创建。
理论上,根据我到目前为止所读到的内容,这应该可以工作,但我完全陷入了这个错误。
如果我将组件文件捆绑在一起,一切正常。
这是我的一个非常简单的组件文件的示例:
这是我为这个概念验证创建的 webpack 配置:
这是html:
javascript - 如何将非模块(!)JavaScript 导入 Polymer 3.0
Polymer 3 使用 import 来加载外部 Javascript。例如
但是,这似乎可行,外部库应该使用导出。
我正在尝试使用 mapbox-gl.js 库。这个库,安装有:
似乎没有出口任何东西。
在 HTML5 中,您可以使用 mapbox-gl,如下所示:
我尝试使用“导入”来加载 mapbox-gl:
这不起作用:
所以,然后我尝试从模块javascript ( )中将脚本和 css 添加到 document.head <script type="module">..</script>
:
这似乎也不起作用。如果我尝试按如下方式使用 mapbox:
我正进入(状态:
编辑:
评论者@Salketer 和@barbsan 为这种库显示了正确的导入语法:
或者
现在两者都导致以下错误消息:
这意味着 mapbox-gl 库现在被加载和解释。但是,mapbox-gl 代码包含以下行:
ES6-module 范围无权访问浏览器的“窗口”对象,因此代码失败。另请参阅是否存在等效于“window”的 es6 模块范围?.
现在,我将 HTML5 <script></script> 和 <link /> 标签(见上文)添加到我的项目的 index.html 中。这可行,但组件和模块的想法是从这些组件和模块内部加载依赖项?
polymer - 准备就绪时聚合物 3 中的淡入过渡
我希望在加载聚合物 3 中的视图时淡入 div 元素。我尝试通过在 div 中添加一个 opacity: 0 的 css 类来解决这个问题。聚合物模板准备好后,应删除 css 类并开始 css 转换(在 2 秒内将不透明度转换为 0),但不执行转换,仅在加载页面时 div 可见。
javascript - 将 Redux-router 与聚合物 3 应用程序一起使用
聚合物应用程序正在使用 redux 来存储应用程序的状态。这个想法是将所有路由也存储在状态中(见下图)。我想为此使用redux-router,但是当我尝试将库导入我的应用程序时,我一开始就开始面临问题。
我的导入代码如下所示:
我通过此导入得到的错误是:
意外令牌 =
如果我尝试像这样导入:
我得到:
未捕获的语法错误:请求的模块“../../node_modules/redux-router/lib/index.js”不提供名为“ReduxRouter”的导出
而如果:
然后:
未捕获的 SyntaxError:意外的令牌导出
该问题可以在起始聚合物 3 应用程序中重现。或者,我认为,在任何聚合物应用程序中。
所以:
- 什么是正确的导入方式?
- 如果我只需要在状态中存储所有路由和历史记录,我可以在聚合物应用程序中使用 redux-router(没有反应)吗?
- 我还有什么其他选择。你知道有什么好的图书馆吗?
javascript - Meteor + LitElement (Polymer 3) 导入问题
我在将 LitElement 模块导入 Meteor 项目时遇到问题:
我正在使用 Meteor 1.7+ 开始一个新的测试项目,并且正在将 LitElement 用于一些组件。
我像这样安装了 Meteor:
我是这样安装的:
我的 node_modules 目录如下所示:
我的 package.json 文件:
我看到导入的 lit-element 的典型方式不起作用......
只需添加一个 index.js 文件并导入 lit-element 模块就会产生错误。如果我从 index.js 文件中删除导入,错误就会消失。
第一个错误:
指向此位置:
展开 node_modules 以查看此文件:
为什么我会收到意外的 { 令牌?
注意:我在这里问这个问题,以防万一 Meteor 用户遇到同样的问题并需要帮助。