聚合物捆绑软件不输出带有自定义捆绑软件的node_modules文件夹

时间:2018-07-20 20:16:15

标签: polymer polymer-cli

使用polymer-cli 1.7.7,将Polymer 3应用绑定到esm,es6和es5支持不会输出node_modules。结果,当捆绑包与@webcomponents/webcomponentsjs一起使用时,找不到诸如prpl-server之类的依赖项。

这里是复制的一个小例子:

https://github.com/lpellegr/polymer-bundler-bundle-issue

此示例基于polymer-cli init生成的原始Polymer 3应用程序模板。已根据以下资源中的建议对配置文件polymer.json进行了编辑,以生成esm,es6和es5捆绑软件:

https://polymer.github.io/pwa-starter-kit/building-and-deploying/

如果运行polymer build,则输出目录不包含包含node_modules的目录,因此不包含webcomponentjs的JavaScript文件:

build/
├── es5-bundled
│   ├── index.html
│   ├── push-manifest.json
│   ├── service-worker.js
│   └── src
│       └── _element
│           └── _element.js
├── es6-bundled
│   ├── index.html
│   ├── push-manifest.json
│   ├── service-worker.js
│   └── src
│       └── _element
│           └── _element.js
├── esm-bundled
│   ├── index.html
│   ├── push-manifest.json
│   ├── service-worker.js
│   └── src
│       └── _element
│           └── _element.js
└── polymer.json

如果从builds中删除了polymer.json选项(从而恢复为默认模板),那么一切看起来都不错,将输出正确的node_modules文件夹:

build/ └── default
    ├── index.html
    ├── node_modules
    │   ├── @polymer
    │   │   └── polymer
    │   │       ├── lib
    │   │       │   ├── elements
    │   │       │   │   └── dom-module.js
    │   │       │   ├── mixins
    │   │       │   │   ├── element-mixin.js
    │   │       │   │   ├── properties-changed.js
    │   │       │   │   ├── properties-mixin.js
    │   │       │   │   ├── property-accessors.js
    │   │       │   │   ├── property-effects.js
    │   │       │   │   └── template-stamp.js
    │   │       │   └── utils
    │   │       │       ├── async.js
    │   │       │       ├── boot.js
    │   │       │       ├── case-map.js
    │   │       │       ├── html-tag.js
    │   │       │       ├── mixin.js
    │   │       │       ├── path.js
    │   │       │       ├── resolve-url.js
    │   │       │       ├── settings.js
    │   │       │       └── style-gather.js
    │   │       └── polymer-element.js
    │   └── @webcomponents
    │       └── webcomponentsjs
    │           └── webcomponents-loader.js
    └── src
        ├── _element
        │   └── _element.js
        └── test-app
            └── test-app.js

我的polymer.json出问题了吗?是polymer-bundler的错误吗?

1 个答案:

答案 0 :(得分:2)

您的polymer.json文件不包含Polymer CLI用来决定要在构建中包含什么的信息。

按照PWA入门工具包添加缺少的行即可使其正常运行,例如:

"entrypoint": "index.html",
"extraDependencies": [
    "node_modules/@webcomponents/webcomponentsjs/**"
],