Компонент StencilJs не отображается в другом проекте stenciljs

Я создал веб-компоненты stenciljs, используя стартовый проект, и я пытаюсь перенести его в другой проект stenciljs через package.json зависимость, которая указывает на репозиторий git.

Веб-компонент импортируется, но как только я пытаюсь запустить компонент внутри проекта tsx stenciljs, я заметил следующее:

  • реквизиты не передаются, CSS я вижу, что он применяется, но контент отсутствует
  • если я добавляю что-то дополнительное на страницу, например, персонаж или что-то в этом роде, сервер разработки отображает веб-компонент (также пытался создать проект, такое же поведение)
  • веб-компонент также содержит некоторые .svgs, помещенные в .tsx файлы в операторе возврата, даже после добавления символа на страницу эти значки по-прежнему не отображаются

Не уверен, что я здесь делаю что-то не так, достаточно странно, что как только я добавляю на страницу что-то еще, помимо этого веб-компонента, он вроде как отображается правильно.

Я импортирую веб-компонент в компонент внутри проекта stenciljs через:

import 'my-component-from-git' ‹- указывает на папку веб-компонентов в папке node_modules

Конфигурация веб-компонента stenciljs:

plugins: [
    sass()
  ],
namespace: 'my-component',
outputTargets: [
  {
      type: 'dist',
      esmLoaderPath: '../loader',
    },
    {
      type: 'dist-custom-elements-bundle',
    },
    {
      type: 'docs-readme',
    },
    {
      type: 'www',
      serviceWorker: null, // disable service workers
    },
  ],

Конфигурация проекта stenciljs:

globalStyle: 'src/global/app.css',
globalScript: 'src/global/app.ts',
taskQueue: 'async',
  plugins: [
    sass()
  ],
  outputTargets: [
    {
      type: 'www',
      // comment the following line to disable service workers in production
      serviceWorker: null,
      baseUrl: './../',
    },
  ],

person RGLSV    schedule 22.12.2020    source источник
comment
Вы импортируете определенный путь или это просто имя пакета?   -  person Thomas    schedule 22.12.2020
comment
@Thomas: название пакета, я попробовал что-то более конкретное, но у меня возникли ошибки; если он так импортирован, не жалуется   -  person RGLSV    schedule 22.12.2020
comment
Это должно быть правильно. Не уверен, что это поможет, но попробуйте переместить импорт в src/global/app.ts.   -  person Thomas    schedule 22.12.2020
comment
@Thomas: все тот же результат :(   -  person RGLSV    schedule 23.12.2020


Ответы (1)


После некоторого расследования компонент, который я хотел экспортировать как веб-компонент, использовал несколько functional components для визуализации своего содержимого (то же самое для .svgs), и после их удаления и использования их в классе, который экспортирует веб-компонент, он работает нормально.

Я не совсем уверен, что с этим что-то не так, или, может быть, он не поддерживается должным образом, или вывод dist не генерируется правильно при использовании functional components.

В настоящее время, если кто-то сталкивается с некоторыми странными проблемами рендеринга, при попытке импортировать веб-компонент, сгенерированный трафаретом, в другой проект трафарета, попробуйте немного изменить свой код, чтобы он не использовал эти functional components.

Возможно, что-то особенное в какой-то конфигурации отсутствует для веб-компонента.

person RGLSV    schedule 22.12.2020