require或者import引入的模块,怎么移除?

发布于 2022-09-12 04:47:36 字数 155 浏览 23 评论 0

目的:动态切换主题样式
思路:根据选中的主题加载对应的css文件
问题:当切换主题样式时怎样才能将上一次引入的css文件移除

试过删除require的缓存delete require.cache[key],缓存确实是删了,但样式文件并没有被移除;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

淡淡的优雅 2022-09-19 04:47:36

最终方案,require和import引入的模块无法移除,故采用静态资源引入的方式。
如引入主题样式文件,在webpack配置CopyWebpackPlugin插件,将需要引入的模块复制到静态资源目录,然后通过link标签将文件引入。
通过link标签实现了动态引入,那自然可以给link标签加上ID,便于匹配替换href实现切换和移除等功能

久光 2022-09-19 04:47:36

在浏览器里,任何加载到网页的东西,在网页关闭之前都无法“移除”。
正常人实现切换主题的方案都是顶层加一个类名等标记,作为命名空间,然后分别写样式,切换这个命名空间就等于切主题了。靠“移除”样式表文件还是头一回听说。
当然,既然 DOM 可以操作,没准 CSSOM 也可以,可以找找相关的 API 。

长梦不多时 2022-09-19 04:47:36

给样式包namespace不是才是换皮常规操作么

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文