Node.js无法在Windows上安装全局npm包(不是路径)

时间:2014-06-06 01:56:19

标签: windows node.js npm

所以,我有一个奇怪的问题,我甚至不确定我能识别出来。我刚刚在Windows 7机器上安装了当前版本的Node.js(v.10。*)。我试图在全局安装一些软件包(gulp和yoeman),但是在安装时遇到错误,在我的C:\ Users \ Michael \ AppData \ Roaming \ npm \ node_modules目录中,许多软件包文件都丢失了。显然,当我尝试全局运行命令时,它会因为没有命令而失败。它从未被创造过。

其他一些全局安装的包工作正常(bower and grunt)。

让事情变得非常棘手。当我将gulp安装到本地文件夹(没有-g)时,安装工作正常,我可以通过在命令之前添加整个路径来使用gulp。显然,我可以将该路径添加到我的系统属性中,因此该命令将是全局的,但这并不能解决我的问题。为什么在全局安装时安装会产生错误,而在本地安装时却不会产生错误?

当我在本地安装gulp时观察目录,我看到正在创建的文件。然后出现第一个错误并删除了许多文件。

我相信我的gulp安装日志的相关部分是:

6949 verbose lock lodash.noop@2.4.1 C:\Users\Michael\AppData\Roaming\npm-cache\7e62c2bb-lodash-noop-2-4-1.lock
6950 error Error: ENOENT, lstat 'C:\Users\Michael\AppData\Roaming\npm\node_modules\gulp\node_modules\vinyl-fs\node_modules\glob-stream\node_modules\glob2base\node_modules\lodash.findindex\node_modules\lodash.createcallback\node_modules\lodash._baseisequal\node_modules\lodash._releasearray\node_modules\lodash._arraypool'
6951 error If you need help, you may report this *entire* log,
6951 error including the npm and node versions, at:
6951 error     <http://github.com/npm/npm/issues>
6952 error System Windows_NT 6.1.7601
6953 error command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "gulp"
6954 error cwd c:\wamp\www\phoenix\animus\gulp
6955 error node -v v0.10.28
6956 error npm -v 1.4.9
6957 error path C:\Users\Michael\AppData\Roaming\npm\node_modules\gulp\node_modules\vinyl-fs\node_modules\glob-stream\node_modules\glob2base\node_modules\lodash.findindex\node_modules\lodash.createcallback\node_modules\lodash._baseisequal\node_modules\lodash._releasearray\node_modules\lodash._arraypool
6958 error fstream_path C:\Users\Michael\AppData\Roaming\npm\node_modules\gulp\node_modules\vinyl-fs\node_modules\glob-stream\node_modules\glob2base\node_modules\lodash.findindex\node_modules\lodash.createcallback\node_modules\lodash._baseisequal\node_modules\lodash._releasearray\node_modules\lodash._arraypool
6959 error fstream_unc_path \\?\C:\Users\Michael\AppData\Roaming\npm\node_modules\gulp\node_modules\vinyl-fs\node_modules\glob-stream\node_modules\glob2base\node_modules\lodash.findindex\node_modules\lodash.createcallback\node_modules\lodash._baseisequal\node_modules\lodash._releasearray\node_modules\lodash._arraypool
6960 error fstream_type Directory
6961 error fstream_class DirWriter
6962 error code ENOENT
6963 error errno 34
6964 error fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fstream\lib\writer.js:284:26
6964 error fstream_stack Object.oncomplete (fs.js:107:15)
6965 verbose exit [ 34, true ]

我有日志文件,如果这会有所帮助。

谢谢。

1 个答案:

答案 0 :(得分:5)

Windows最多可支持260个字符作为最大路径长度。我希望nodejs开发人员能够解决嵌套模块方法。要做一个解决方法,我只需将全局npm模块路径更改为c:从AppData获取一些字符,它就可以解决问题。我知道这个黑客只为你提供了一些角色,但它对我有用。 为此,

  1. 在管理员模式下打开记事本。
  2. 转到位置[nodejs安装目录] \ node_modules \ npm
  3. 打开文件&#34; npmrc&#34;并更改前缀= c:\ npm
  4. 保存文件。