0

使用 Stencil 组件启动项目,我创建了一个简单的 my-component 对象并将其发布到 npm:https ://www.npmjs.com/package/@marekknows/my-component

然后,我使用 electron-webpack-quick-start 项目创建了一个使用前面提到的组件的简单应用程序。代码在这里:https ://github.com/mmakrzem/myApp

我可以开始运行 Electron 应用程序,npm start但是我的组件不会在窗口中呈现。Stencil 文档 ( 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>

但是电子(铬)开发工具说:

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中找到的图像应该如何被 Electron 正确解析。

4

1 回答 1

0

通过执行以下操作,我终于可以使事情正常进行:

  • 将 /dist/collection/assets 下的节点包中的所有资产复制到我自己的 static/assets 文件夹中
  • 将所有编译好的javascript源代码复制到static/js/

然后从 html 中,如果我参考静态中找到的代码,一切都会正确解析。

我不知道为什么我需要将东西从我的 node_modules 目录移动到我的本地应用程序目录中,但至少它有效!

于 2018-12-05T16:33:36.643 回答