首页 文章

Polymer bundler不会使用自定义捆绑包输出node_modules文件夹

提问于
浏览
1

使用 polymer-cli 1.7.7,为esm,es6和es5支持捆绑Polymer 3应用程序不会输出 node_modules . 因此,当捆绑包与 prpl-server 一起提供时,找不到依赖项,如 @webcomponents/webcomponentsjs .

这是一个复制的小例子:

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

此示例基于 polymer-cli init 生成的原始聚合物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

如果从 polymer.json 删除 builds 选项(因此恢复为默认模板),则所有看起来都很好,输出正确的 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 回答

  • 2

    您的 polymer.json 文件不包含Polymer CLI用于确定要在构建中包含的内容的信息 .

    根据PWA入门套件添加缺失的行使其工作,例如:

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

相关问题