我是 NodeJS 新手,所以可能我犯了一些错误。
我在名为 myapp.txt 的外部文件中编写了一堆代码。我启动 Windows 版 NodeJS,并在解释器窗口中输入:
var myapp = require('d:/myapp.js');
然后我可以在外部模块中使用我的函数和变量。
问题是,如果我更新 myapp 中的代码,那么解释器不会重新读取该文件,而是使用旧版本。
现在,这首先正常吗?如何解决这个问题?
P.S.:我在互联网上花了几个小时并在许多论坛上进行了搜索,包括这个。这比其他任何事情都更令人困惑。
Thanks.
有这里有一些答案 http://stackoverflow.com/questions/9210542/node-js-require-cache-possible-to-invalidate正如评论中所建议的。
然而它们对 REPL 不友好,甚至可能使用额外的模块。
这是一个单行解决方案,您可以将其粘贴到 REPL 中,其灵感来自于另一个问题的讨论:
function nocache(module) {require("fs").watchFile(require("path").resolve(module), () => {delete require.cache[require.resolve(module)]})}
每次文件更改时,该函数都会从缓存中删除您的模块。
要使用它,只需将其粘贴到 REPL 中,调用nocache("d:/myapp.js")
,然后使用require
通常情况下。
> function nocache(module) {require("fs").watchFile(require("path").resolve(module), () => {delete require.cache[require.resolve(module)]})}
> nocache("d:/myapp.js");
> var myapp = require("d:/myapp.js");
......
> myapp = require("d:/myapp.js");
....
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)