Нужен ли загрузчик модулей для использования веб-компонентов с веб-пакетом 4? - PullRequest
0 голосов
/ 15 октября 2018

Я только начал возиться с Webpack в первый раз.Я установил webpack 4 и смог создать небольшой тестовый сайт.В моем тестовом проекте у меня есть очень маленький веб-компонент, который я написал (только начал писать веб-компоненты тоже).К моему удивлению все работало отлично.Пока ...

Я включил эту строку в свой веб-компонент:

console.log(this.hasAttribute('emphasis');

после того, как я добавил эту строку в свой компонент, веб-пакет больше не будет собираться.Если я это прокомментирую, все будет хорошо.Вот ошибка, которую выдает мне веб-пакет:

Module parse failed: Unexpected token (32:55)
You may need an appropriate loader to handle this file type.
connectedCallback(){
    console.log(this.hasAttribute('emphasis');

Я использую простейший пример веб-пакета 4 без файла конфигурации.

  1. Почему проверка на атрибут нарушает веб-пакет?
  2. Если мне нужен загрузчик модулей для веб-компонентов, почему он ждал, чтобы жаловаться, пока я не проверил атрибут?
  3. Если мне нужен загрузчик, какой загрузчик мне нужен?

Вот мой веб-компонент для справки:

(function() {
const template = document.createElement('template');

template.innerHTML = `
        <style>
            :host {
                padding: 0.7em 0.57em;
            }
        </style>
        <slot></slot>
    `;

class MyButton extends HTMLElement {
    constructor(){
        super();
        this.attachShadow({mode: 'open'});
        this.shadowRoot.appendChild(template.content.cloneNode(true));

    }

    connectedCallback(){
        console.log('connected');
        console.log(this.hasAttribute('emphasis'));
    }

}

window.customElements.define('my-button',MyButton);
})();
...