node.js - npm 始终使用主目录作为当前工作目录

标签 node.js powershell npm

无论我从哪个目录执行命令,npm 都坚持使用我的主目录作为当前工作目录。

cmd和Powershell都会发生这种情况,我尝试删除并重新安装 Node ,都使用nodejs.org上的安装程序,并通过Chocolatey得到相同的结果。

如果我导航到例如C:\test并运行npm init ,向导将结果 package.json文件在我的主文件夹中。

如果我运行npm install <package>从任何文件夹,该软件包都会安装到 C:\Users\myusername\node_modules

尝试全局安装软件包也会失败,原因如下

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\ProgramData\\chocolatey\\lib\\nodejs.commandline.0.10.33\\tools\\node.exe" "C:\\ProgramData\\chocolatey\\lib\\npm.1.4.9\\tools\\node_modules\\npm\\bin\\npm-cli.js" "install" "gulp" "-g"
npm ERR! cwd C:\Users\<myusername>

如果我导航到文件夹,启动 Node REPL 并运行 process.cwd()返回了我启动 Node 的目录,因此问题似乎仅限于 npm。

正在运行npm get给出这个结果:

C:\test> npm get
; cli configs
registry = "https://registry.npmjs.org/"
user-agent = "npm/1.4.9 node/v0.10.33 win32 x64"

; node bin location = C:\ProgramData\chocolatey\lib\nodejs.commandline.0.10.33\tools\node.exe
; cwd = C:\Users\<myusername>
; HOME = C:\Users\<myusername>
; 'npm config ls -l' to show all defaults.

我已经搜索了很多解决方案,并找到了一些similar issues ,但没有解决我的问题。我知道 npm 会沿着目录树查找 node_modules 文件夹,但这也会发生在我的主目录之外的文件夹中。

有关我尝试解决此问题的任何提示吗?

最佳答案

结果我有一个cd C:\Users\<myusername>命令 HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun在注册表中。意味着该命令随时执行CMD.EXE开始了。

不知道它是如何进入那里的,我可能在某个时候自己添加了它。

无论如何,如果有人在执行脚本时和在打开的命令提示符中手动运行相同命令时遇到当前工作目录之间的差异,HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRunHKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun是检查的好地方。

关于node.js - npm 始终使用主目录作为当前工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27026014/

相关文章:

powershell - 与 Powershell 等效的 awk 命令

powershell - 如何在 Powershell 中显示动态参数的 .PARAMETER 帮助消息?

powershell - CouchDB SSL CRT 到 PEM 文件

intellij-idea - WebStorm 和 IntelliJ IDEA 在 NPM 运行/调试配置中看不到自定义 NPM 脚本

node.js - 为什么在安装 npm now 包时出现此错误?

node.js - Express:从另一个中间件调用一个中间件

node.js - vue + vite + ubuntu 20 个错误

javascript - 接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足

angularjs - 没有 Sails.js 等辅助工具的应用程序安全性

node.js - 使用 Node.js HTTP API 或 Websockets 流式传输数据?