电子根据命令重新加载特定的 JS 文件
Electron Reloading A Specific JS File On Command
我最近一直在开发一个 Electron 应用程序,该应用程序需要将数据存储在 javascript 文件中,该文件在用户登录和显示时解密,并在用户注销时加密。但是,登录后,用户可以选择将数据添加到 javascript 文件。不幸的是,当这个过程完成时,新数据不会显示,尽管在初始显示中使用与重新加载中完全相同的代码。我确信这是由于 javascript 文件需要重新加载(Electron 未注册文件更改)。我试过 electron-reload
模块,但它似乎只允许实时重新加载。我需要一个模块或解决方案,让我可以做这样的事情。
var reload = require('some-reload-module');
reload.reload('../path/to/file.js');
...
任何解决方案都将受到欢迎,因为到目前为止我没有运气。提前致谢!
发生这种情况是因为 require
caches its results in require.cache
. To get around this, you can just delete the entry in the cache。
// Initially require the file; the result is cached.
require('../path/to/file.js');
// Delete the cached version of the module.
delete require.cache[require.resolve('../path/to/file.js')];
// Re-require the file; the file is re-executed and the new result is cached.
require('../path/to/file.js');
我最近一直在开发一个 Electron 应用程序,该应用程序需要将数据存储在 javascript 文件中,该文件在用户登录和显示时解密,并在用户注销时加密。但是,登录后,用户可以选择将数据添加到 javascript 文件。不幸的是,当这个过程完成时,新数据不会显示,尽管在初始显示中使用与重新加载中完全相同的代码。我确信这是由于 javascript 文件需要重新加载(Electron 未注册文件更改)。我试过 electron-reload
模块,但它似乎只允许实时重新加载。我需要一个模块或解决方案,让我可以做这样的事情。
var reload = require('some-reload-module');
reload.reload('../path/to/file.js');
...
任何解决方案都将受到欢迎,因为到目前为止我没有运气。提前致谢!
发生这种情况是因为 require
caches its results in require.cache
. To get around this, you can just delete the entry in the cache。
// Initially require the file; the result is cached.
require('../path/to/file.js');
// Delete the cached version of the module.
delete require.cache[require.resolve('../path/to/file.js')];
// Re-require the file; the file is re-executed and the new result is cached.
require('../path/to/file.js');