Полимер не загружает веб-компонент ts полимерной подачей

Следуйте руководству LitElement здесь: https://lit-element.polymer-project.org/guide/start

Я буквально следую за ним по книгам, а затем бегу polymer serve в корневом каталоге проекта.

Я даже копировал/вставлял каждый файл из их примеров страниц stackblitz. Я не должен использовать полимерную подачу или что-то в этом роде?

Все, что я получаю, это пустая страница, и, похоже, она не распознает customElement

Полимер не загружает веб-компонент ts полимерной подачей

мой-element.ts:

import { LitElement, html, customElement, property } from 'lit-element';

@customElement('my-element')
export class MyElement extends LitElement {
  @property()
  foo = 'foo';

  render() {
    return html`
      <p>hi!</p>
    `;
  }
}

index.ts:

import './my-element.ts';

индекс.html:

<!DOCTYPE html>
<html lang = "en">
  <head>
    <meta charset = "UTF-8" />
    <meta name = "viewport" content = "width=device-width, initial-scale=1.0" />
    <meta http-equiv = "X-UA-Compatible" content = "ie=edge" />
    <script src = "/node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"></script>
    <script src = "/node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.js"></script>

    <title>lit-element code sample</title>
  </head>
  <body>
    <my-element></my-element>
  </body>
</html>

пакет.json:

{
  "name": "my-app",
  "version": "1.0.0",
  "license": "ISC",
  "dependencies": {
    "@webcomponents/webcomponentsjs": "^2.2.10",
    "lit-element": "^2.1.0"
  }
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
174
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

I even copy/pasted over every file from their example stackblitz pages

На самом деле проекты Stackblitz TS следуют определенной структуре, в которой index.ts рассматривается как точка входа кода TypeScript, автоматически компилируется и импортируется в окончательный результат.

Локальный сценарий совсем другой: вам нужно выбрать инструмент сборки для компиляции файлов TS и импортировать результат в index.html:

<!DOCTYPE html>
<html lang = "en">
  <head>
    <!-- ... -->
    <!-- This may differ depending on your build configuration -->
    <script src = "./path/to/my-element.js" type = "module"></script>
  </head>
  <body>
    <my-element></my-element>
  </body>
</html>

Вы можете использовать tsc напрямую или сборщик модулей, например Вебпак + ts-загрузчик или Rollup + rollup-plugin-typescript2. Это действительно зависит от сложности и требований ваших проектов и от того, какие браузеры вы хотите поддерживать.

Ах, хорошо, это было мое самое большое замешательство относительно того, как они сделали это без этого тега сценария.

canpan14 29.05.2019 17:54

Отказано в выполнении сценария из 'локальный: 8081/index.ts', поскольку его MIME-тип ('video/mp2t') не является исполняемым. Так что я предполагаю, что ему не нравится тот факт, что я даю ему машинописный файл. Я делаю src = "./my-element.ts". Нужно ли мне настраивать всю конфигурацию сборки/пакета, чтобы заставить его работать с ts?

canpan14 29.05.2019 18:24

Да, браузеры не понимают .ts файлы: их нужно компилировать в js. Я обновил ответ, добавив немного контекста в компиляторы/связки. Скажите, если вам нужна дополнительная информация

Umbo 30.05.2019 09:28

Другие вопросы по теме