最近开始使用sveltejs模板玩Svelte。一切工作正常,但是当我对文件进行任何更改时,它都不会将更改热加载到Web浏览器中,因此我必须手动刷新页面才能查看更改。设置中是否有启用该功能的选项?
rix*_*ixo 13
只是为了反驳作者关于他自己的库的问题,我要争辩说接受的答案都是错误的。
Rollup可以有带有rollup-plugin-hot 的HMR 。正如之前在评论中所指出的,Nollup也可以做到。
这样,您就可以将更新的代码推送到浏览器并刷新(即销毁 + 重新创建)整个应用程序,而无需重新加载页面。然而,这并不比重新加载整页好得多,如果有的话。
您想要的是仅替换受代码更新影响的 Svelte 组件,以便保留您当前的应用程序状态,并且您还希望尽可能多地保留更新组件的状态。为此,您可以将rollup-plugin-svelte-hot与 Rollup / Nollup 结合使用,或将svelte-loader-hot与 Webpack 结合使用。
待官方的支持,我保持的官方模板+ HMR克隆:苗条模板热的汇总/ Nollup和苗条-模板的WebPack热了的WebPack。Sapper也有sapper-template-hot(仅支持 Webpack)。而且,为了完整性,svelte-native-template(不是我维护的)还包括 HMR 支持。
Svelte 仍未正式支持 HMR。Rich 的回答中提到的问题已经结束。现在可以在此问题中跟踪进度。
(当然,Rich 最初写的时候的回答是正确的。从官方的角度来看仍然是正确的。而且这个答案是一个无耻的广告我自己的项目的插件,因为这个问题在谷歌中排名很高,但我希望它是还是有用的。)
默认模板(https://github.com/sveltejs/template)使用Rollup,它不支持热模块重新加载。该的WebPack版本(https://github.com/sveltejs/template-webpack)将支持HMR,但首先我们需要添加一些挂钩斯维尔特本身,使之成为可能。您可以在此处跟踪一个问题-希望我们能够尽快完成这项工作。
在此之前,Tholle建议使用livereload插件可能是最好的折衷方案。
归档时间: |
|
查看次数: |
1471 次 |
最近记录: |