【问题标题】:npm always using home directory as current working directorynpm 总是使用主目录作为当前工作目录
【发布时间】:2015-01-17 12:17:59
【问题描述】:

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

cmd 和 Powershell 都会发生,我尝试删除和重新安装节点,都使用 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>

如果我导航到一个文件夹,启动节点 REPL 并运行 process.cwd() 返回我启动节点的目录,所以问题似乎仅限于 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 文件夹,但这也发生在我的主目录之外的文件夹中。

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

【问题讨论】:

    标签: node.js powershell npm


    【解决方案1】:

    原来我在注册表中的HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun 中有一个cd C:\Users\&lt;myusername&gt; 命令。这意味着该命令在CMD.EXE 启动时随时执行。

    不知道它是怎么进来的,我可能在某个时候自己添加了它。

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

    【讨论】:

      【解决方案2】:

      不是 100% 肯定,但我认为如果你没有 package.json 文件,你会得到这个。尝试创建一个(npm init)然后尝试安装任何模块。然后应该将它们保存在您当前所在目录的 node_modules 下。

      【讨论】:

      • 嗨,感谢您的建议,但就像我提到的,npm init 在我的主文件夹中创建 package.json 文件,无论我从哪里运行它。在我的主文件夹之外的另一个文件夹中手动创建package.json 文件,然后运行例如npm install gulp 来自该文件夹,仍然在我的主文件夹中创建一个新的 node_modules 文件夹,并在那里安装 gulp。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 2013-10-13
      • 2016-03-22
      • 1970-01-01
      相关资源
      最近更新 更多