nsis把nw.js整个项目编译成一个exe包,可以实现分发给客户时,可以给用户更好的体验,但是隐藏着一个坑。也可以说是nw.js本身存在的坑。由于nw.js是基于node.js和chromium的应用程序运行环境的。如果项目用到localstorage来实现部分缓存和自动登录功能实现,则作为浏览器的内核渲染页面,则用户安装应用后 必然会生成本地缓存。导致用户下次重装应用时,还是使用上一个安装包的缓存数据,因此需要在上一个应用卸载应用时或者安装新的应用时 把之前的用户缓存文件删除掉。因此需要nsis命令删除用户目录下的缓存删除。 RMDir /r "$PROFILE\AppData\Local\demoproject" RMDir删除文件夹,/r表示在当前文件夹路径下递归查找,而不是当前文件夹路径下文件为空时才能删除文件。$PROFILE表示当前用户目录下 ,AppData\Local\demoproject就是当前用户目录下缓存demoproject应用的缓存数据。详细nsi编译文件命令如下:
···sho
Section ""
;清空上次安装的用户缓存信息
RMDir /r "$PROFILE\AppData\Local\demoproject"
;将输出路径设置为安装目录
SetOutPath "$INSTDIR"
;ADD YOUR OWN FILES