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

时间:2015-09-10 21:46:18

标签: node.js windows-7 npm gulp node-modules

在Windows 7 Enterprise上运行nodejs。

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

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

找到解决方案:

(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条目。