是否可以将模块导入 Polymer 组件?

Posted

技术标签:

【中文标题】是否可以将模块导入 Polymer 组件?【英文标题】:Is it possible to import modules into a Polymer component? 【发布时间】:2017-04-01 16:04:00 【问题描述】:

我想很好地封装我的聚合物组件,但现在如果我尝试将任何外部模块导入组件中,我会收到未定义的“导入”错误。

我使用 Webpack 来打包我的应用程序,但这只会打包我的 javascript 文件。

有没有办法将我的 Polymer 组件封装到单个 html 文件中,或者在导入时我必须将 js 部分分开?

例子:

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

<dom-module id="my-new-view">
  <template>
    <style>
    </style>

    <h1>New view</h1>
  </template>

  <script>

   import  myConstant  from '../module.js'; //<---- this throws error for the import'

    Polymer(
      is: 'my-new-view'
    );
  </script>
</dom-module>

【问题讨论】:

【参考方案1】:

仅 Webpack

为了让它像那样工作,你必须将module.js 导出为一个库,以便它可以在 Webpack 之外使用。一旦它成为库的一部分并包含在全局范围内,您就可以像访问它一样访问它

var myConstant = Module.myConstant;

Polymer(
  is: 'my-new-view'
);

将 JS 代码放在单独的文件中可能会容易得多。

见https://***.com/a/34361312/4722305。

保鲜盒

另一种选择可能是在调用 webpack 之前在您的代码上运行 https://github.com/PolymerLabs/crisper。 Crisper 将从您的代码中删除 &lt;script&gt; 标签并将它们转换为与 Webpack 兼容的 JS 文件。

【讨论】:

以上是关于是否可以将模块导入 Polymer 组件?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Webpack 的编译时解析导入的模块路径?

定义 Polymer Web 组件而不导入它们

如何以角度将组件从一个模块导出和导入到它的子模块

懒惰地导入 UI 模块/组件的最佳方法是啥

微软提出CSS Modules V1 :通过import语句将CSS模块导入到组件中

无法将 ES6 模块导入 Vue 单文件组件