javascript - Importing web component without module bundler - Stack Overflow

I am trying to follow these instructions for using web ponents. I installed the polymer paper-button wi

I am trying to follow these instructions for using web ponents. I installed the polymer paper-button with npm install --save @polymer/paper-button, addded the below to my index.html and opened it with vscode's live-server. But I get a console error saying: Uncaught TypeError: Failed to resolve module specifier "@polymer/iron-flex-layout/iron-flex-layout.js". Relative references must start with either "/", "./", or "../".. I would like to solve this without using a module bundler like webpack.

<script type="module" src="node_modules/@polymer/paper-button/paper-button.js"></script>
...
<paper-button raised class="indigo">raised</paper-button>

I am trying to follow these instructions for using web ponents. I installed the polymer paper-button with npm install --save @polymer/paper-button, addded the below to my index.html and opened it with vscode's live-server. But I get a console error saying: Uncaught TypeError: Failed to resolve module specifier "@polymer/iron-flex-layout/iron-flex-layout.js". Relative references must start with either "/", "./", or "../".. I would like to solve this without using a module bundler like webpack.

<script type="module" src="node_modules/@polymer/paper-button/paper-button.js"></script>
...
<paper-button raised class="indigo">raised</paper-button>
Share Improve this question edited Dec 6, 2019 at 18:23 Max888 asked Dec 6, 2019 at 18:11 Max888Max888 3,8505 gold badges35 silver badges76 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 5

A workaround I have found is to instead use https://unpkg./ as per below:

<script type="module" src="https://unpkg./@material/mwc-button@latest/mwc-button.js?module"></script>

Note: you need to add the ?module parameter to the end of the URL in order for unpkg to fix the bare module syntax within the file requested otherwise it just returns the original file with bare module imports.

The error you're getting refers to the inability of browsers - even those that support ES modules - to resolve bare module imports (import foo from 'bar';).

Yes, here:

                           ↓
<script type="module" src="node_modules/@polymer/paper-button/paper-button.js"></script>

you're importing by relative path but paper-button in turn is importing other modules by bare specifier:

paper-button.js:11:1
import '@polymer/iron-flex-layout/iron-flex-layout.js';

To know more about modules in the browser and the reasons behind the lack of support for bare specifiers I would remend this article by Damien Seguin.

You don't necessarily need a module bundler to be able to launch the application: polymer serve, Polymer's dev server, resolves module specifiers automatically. Also, Polymer CLI's build mand may be of help if you don't want to manually configure a build system or alternatively tools like Babel can help you transform imports without bundling.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745245958a4618412.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信