无法让“npm install -g”在任何软件包上工作(AppData / Roaming / npm始终为空)
在Windows 7 Enterprise上运行nodejs。
每当我安装一个需要-g访问的node_module时,我知道它应该在%AppData$/Roaming/npm
创build一个* .bat文件,但由于某种原因,它不再那么做。
例如,我将运行npm install gulp -g
,控制台看起来像安装正确,但文件不会在AppData文件夹中。 如果我尝试运行sh.exe": gulp: command not found
命令,我得到错误sh.exe": gulp: command not found
。
如果我以pipe理员npm install gulp -g
在控制台中运行npm install gulp -g
命令,则会将这些文件安装到pipe理员(而不是普通用户)的%AppData%文件夹中。 所以如果我通过非pipe理员用户运行sh.exe": gulp: command not found
,我仍然得到错误sh.exe": gulp: command not found
。
有任何想法吗?
find解决scheme
(1)运行命令: npm config get prefix
,输出是C:\Program Files (x86)\Git\local
。 不知道为什么它被设置,因为它不是默认的。
但是我改变了它: npm config set prefix "$APPDATA\npm"
。
现在当我安装一个 – g模块,即。 npm install gulp -g
,它安装到这个理想的目录下,不再抛出EPERM
和ENOENT
错误。
(2)仍然需要为npm文件夹添加一个PATH
条目。 命令export PATH=$PATH:/c/Users/{YOUR_USERNAME}/AppData/Roaming/npm
暂时工作,但是如果closures控制台并再次打开,可能不会保存(如果您不是pipe理员)。
但是你也可以使用echo 'export PATH=$PATH:/c/Users/{YOUR_USERNAME}/AppData/Roaming/npm' >> ~/.bash_profile
,它会创build一个.bash_profile
文件,每次运行控制台打开。 所以从这一点来说,它应该自动添加所需的PATH
条目。