我正在构建一个electron
应用。在其中,我有一个webview
preload
script。在内容中,我想使用sweetalert
。
我使用sweetalert
安装了npm install --save 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
语句相比,这看起来都很笨拙,对于一个更简单的解决方案来说,它似乎很奇怪。
答案 0 :(得分:-2)
您必须像在浏览器中一样包含它,例如在index.html中。将它从模块文件夹中复制到css文件夹中(如果有)并将其与链接标记链接。这取决于你是否使用普通电子或其他样板模板,有一个gulp / grunt工作流程在哪里坚持它,但事实上,电子只是一个运行你的JS / html的浏览器所以它真的完全相同处理。 require只加载JS模块而不加载样式。
如果你想动态地包含它,你可以使用与常规浏览器相同的技术(例如document.write / create element)。
答案 1 :(得分:-3)
我不熟悉sweetalert,但希望这会有所帮助。
您的require语法应与此类似。
var sweetalert = require('sweetalert')
然后,您应该能够使用以下语法访问sweetalert对象上的方法。
sweetalert.someMethod()
记住要求只返回一个javascript对象。这些对象通常具有允许某些功能的方法。如果你想将sweetalert添加到你的页面,你需要在html中注入它,或者sweetalert模块中的javascript需要动态创建包含css的html。我希望澄清一些事情,并帮助你更好地了解一些内部运作。