Как использовать компонент StencilJs в ElectronJs - PullRequest
0 голосов
/ 14 ноября 2018

Используя стартовый проект компонента Stencil, я создал простой объект my-component и опубликовал его в npm здесь: https://www.npmjs.com/package/@marekknows/my-component

Затем я использовал проект electronic-webpack-quick-start для создания простого приложения, в котором используется ранее упомянутый компонент. Код здесь: https://github.com/mmakrzem/myApp

Я могу запустить приложение Electron с npm start, но my-component не отображается в окне. Документация по трафарету (https://stenciljs.com/docs/distribution) описывает, как использовать модули узлов, однако я подозреваю, что это еще не все, чтобы эта работа работала.

Код, который я генерирую, таков:

<html>
  <head>
    <meta charset="utf-8">
    <script>     
      require("module").globalPaths.push( "C:/Users/mkrzeminski/Documents/webWork/__help/myApp/node_modules")
      require("source-map-support/source-map-support.js").install()
    </script>
  </head>
  <body>
    <div id="app"></div>
    <script type="text/javascript" src="renderer.js"></script>
    <div>Hello Electron</div>
    <script src="node_modules/@marekknows/my-component/dist/my-component.js"></script>
    <my-component></my-component>
  </body>
</html>

Но инструменты разработчика Electron (chrome) говорят:

Refused to execute script from 'http://localhost:56759/node_modules/@marekknows/my-component/dist/my-component.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

Я также не знаю, как изображения, найденные в моем компоненте node_modules\@marekknows\my-component\dist\collection\assets, должны корректно разрешаться Электроном.

1 Ответ

0 голосов
/ 05 декабря 2018

Мне удалось наконец заставить вещи работать, выполнив следующее:

  • скопировать все ресурсы, найденные в моем пакете узла в / dist / collection / assets, в мою собственную папку static / assets
  • скопировать весь скомпилированный исходный код javascript в static / js /

затем из html, если я обращаюсь к коду, найденному в static, все разрешается правильно.

Я не знаю, почему мне нужно перемещать вещи из моего каталога node_modules в мой локальный каталог приложений, но по крайней мере это работает!

...