我正在构建一个 electron
应用程序。在其中,我有一个 webview
用preload
script .在上述脚本中,我想使用 sweetalert
.
我使用 npm install --save sweetalert
安装了 sweetalert
。在我的脚本中,我使用 require('sweetalert')
加载它并使用 swal("Hello world!");
调用它。我现在注意到它看起来不对,因为警报缺少它的 required CSS file .但是我用 require('sweetalert')
加载它,这很棒,因为 sweetalert
可以保留在 node_modules
的目录中,我不必关心它,但它的 CSS 是它不可或缺的一部分,并且不会以相同的方式被拉动。
现在,推荐的解决方法是什么?请记住,我在 javascript
文件中,并希望保持这种状态。我真的必须去获取 CSS 文件和 inject it吗?某种程度上来说?既然它在 node_modules
中,我该如何正确执行呢?测试后,由于 Content Security Policy,在这种特殊情况下似乎无法完成。 .
无论哪种方式,与 require
语句相比,这看起来都很笨拙,没有更简单的解决方案似乎很奇怪。
最佳答案
您必须像通常在浏览器中那样包含它,例如在 index.html 中。将它从模块文件夹中复制到您的 css 文件夹中(如果有的话),并使用 link 标签链接它。这取决于您使用的是普通 Electron 还是其他一些样板模板,并且有一个 gulp/grunt 工作流程可以将它粘贴到哪里,但仅此而已, Electron 只是一个运行 JS/html 的浏览器,所以它真的完全一样过程。 require 只加载 JS 模块而不加载样式。
如果您想动态包含它,您可以使用与常规浏览器相同的技术(例如 document.write/create 元素)。
关于node.js - 使用 'require' 时如何从库中加载 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33833287/