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

Is it possible to import modules into a Polymer component?

我想很好地封装我的聚合物组件,但现在如果我尝试将任何外部模块导入组件,我会收到 'import'.

的未定义错误

我使用 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>

仅 Webpack

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

一样访问它
var myConstant = Module.myConstant;

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

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

参见

更清爽

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