无法让 "npm install -g" 处理任何包(AppData/Roaming/npm 总是空的)

Cannot get "npm install -g" to work on any packages (AppData/Roaming/npm always empty)

运行 Windows 7 Enterprise 上的 nodejs 正在工作。

每当我安装需要 -g 访问权限的 node_module 时,根据经验我知道它应该在 %AppData$/Roaming/npm 中创建一个 *.bat 文件,但由于某种原因它不再这样做。

例如,我会运行 npm install gulp -g,控制台看起来安装正确,但文件不会在 AppData 文件夹中。如果我尝试 运行ning gulp 命令,我会收到错误 sh.exe": gulp: command not found.

如果我以管理员身份在控制台中 运行 npm install gulp -g 命令,它会将文件安装到管理员(而不是普通用户)的 %AppData% 文件夹中。因此,如果我通过我的非管理员用户 运行 gulp 命令,我仍然会收到错误 sh.exe": gulp: command not found.

有什么想法吗?

找到解决方案:

(1) 在 运行 执行命令:npm config get prefix 后,输出为 C:\Program Files (x86)\Git\local。不知道为什么设置为这个,因为它不是默认值。

但我使用以下方式更改了它:npm config set prefix "$APPDATA\npm"

现在,当我安装 --g 模块时,即。 npm install gulp -g,它安装到这个理想的目录中,不再抛出 EPERMENOENT 错误。

(2) 仍然需要为 npm 文件夹添加一个 PATH 条目。命令 export PATH=$PATH:/c/Users/{YOUR_USERNAME}/AppData/Roaming/npm 暂时有效,但如果您关闭控制台并再次打开它,可能无法保存(如果您不是管理员)。

但您也可以使用 echo 'export PATH=$PATH:/c/Users/{YOUR_USERNAME}/AppData/Roaming/npm' >> ~/.bash_profile,这将创建一个 .bash_profile 文件,每次打开控制台时,该文件都是 运行。所以从这一点来看,它应该会自动添加所需的 PATH 条目。

我也遇到了同样的问题。

安装后 node.js(https://nodejs.org/en/download/) npm 文件夹(在 appdata 文件夹中)保持为空。

所以,在这个阶段,如果你尝试 build/run angular project(ng build/ng serve),它会给出错误:

The term 'ng' is not recognized as the name of a cmdlet, function, script file, or operable program. 

因此,为了解决这个问题,请使用以下命令在您的项目中全局安装 angular:

npm install -g @angular/cli

现在,npm 文件夹(节点模块等)中会有数据并且 ng 命令现在 运行。