在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
。
有什么想法吗?
答案 0 :(得分:4)
找到解决方案:
(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
暂时有效,但如果您关闭控制台并再次打开它,则可能无法保存(如果您不是管理员)。
但您也可以使用echo 'export PATH=$PATH:/c/Users/{YOUR_USERNAME}/AppData/Roaming/npm' >> ~/.bash_profile
,这将创建一个.bash_profile
文件,每次打开控制台时都会运行该文件。因此,从这一点来说,它应该自动添加所需的PATH
条目。