为什么调用 os.tmpDir() 只会在某些机器上产生错误?

Til*_*dle 2 javascript runtime-error version deprecated node.js

我是一名网络开发学生,我的一个朋友也是。目前,我们正在使用同一班级的同一教科书提供的相同文件。练习的重点是练习 require.js 并探索它可以做什么。我们都采取了相同的步骤来确保下载了正确的包,并且 node 和 npm 版本是最新的。

node index.js在我的机器上运行时,服务器开始监听::8080并打印os.tmpDir() is deprecated. Use os.tmpdir() instead.由于我还是个新手,我不是 100% 确定弃用实际上是什么,但我知道该应用程序仍然有效。

node index.js在她的机器上运行时,她收到一个错误,指出os.tmpDir()不是函数。我可以去的地方localhost:8080,她去不了。

我们尝试过卸载和重新安装 node(稳定版本和最新版本)、比较文件(相同)和比较软件包版本。不知何故,尽管我们正在使用的东西(除了我们的机器)之间没有区别,但我们正在经历两种不同的结果。

有什么建议?

错误信息:

C:\Users\Nereida\Documents\Classes\Summer2020\WEB.215\requirejs\node_modules\mach\lib\utils\makeTemporaryPath.js:4
var TMP_DIR = require("os").tmpDir();
                            ^

TypeError: require(...).tmpDir is not a function
    at Object.<anonymous> (C:\Users\Nereida\Documents\Classes\Summer2020\WEB.215\requirejs\node_modules[4mmach[24m\lib\utils\makeTemporaryPath.js:4:29)
    at Module._compile (internal/modules/cjs/loader.js:1200:30)[39m
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)[39m
    at Module.load (internal/modules/cjs/loader.js:1049:32)[39m
    at Function.Module._load (internal/modules/cjs/loader.js:937:14)[39m
    at Module.require (internal/modules/cjs/loader.js:1089:19)[39m
    at require (internal/modules/cjs/helpers.js:73:18)[39m
    at Object.<anonymous> (C:\Users\Nereida\Documents\Classes\Summer2020\WEB.215\requirejs\node_modules[4mmach[24m\lib\utils\saveToDisk.js:6:25)
    at Module._compile (internal/modules/cjs/loader.js:1200:30)[39m
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
Run Code Online (Sandbox Code Playgroud)

Til*_*dle 6

答案来自djfdev 的评论

这是你的问题,她需要使用os.tmpdir()小写的 d。正如您所指出的,有一个关于使用带有大写 D 的版本的弃用警告。看起来这在节点 14 中已完全删除。

这么简单……这么多时间。你是我的救星djfdev!