通过node.js的npm安装gulp打破窗口

时间:2014-06-10 14:09:40

标签: node.js npm gulp

我想在我的Windows机器上使用gulp,它实际上工作得很好,除非我尝试使用创建的文件(如推送到github或删除)。然后它就会中断,因为文件路径太长而且似乎是一个相当普遍的问题。 https://github.com/joyent/node/issues/6960#issuecomment-45569604

据我所知,问题出现在npm的嵌套目录中,这些目录扩展了Windows目录的最大字符数,但据我所知,还没有任何解决方案。

正如我现在所看到的,我有三个选择:

  1. 尝试通过将默认值从“node_modules”更改为“n_m”来减少npm目录的字符,并希望问题不会被推迟。喜欢这里建议: https://github.com/joyent/node/issues/6960#issuecomment-45569604
  2. 那么这是我的问题,我究竟如何更改默认的'node_modules'目录名?

    1. 将我的开发环境改为Ubuntu,坦白说这是我不喜欢的解决方案,因为我从未使用过Ubuntu。

    2. 停止使用gulp。

    3. 那么,如何更改通过npm创建的默认“node_modules”目录或者您实际建议的解决方案?

1 个答案:

答案 0 :(得分:10)

还有一个棘手的选择。

主要问题是gulp有很多嵌套依赖项,它会创建很长的嵌套文件路径。

但是如果您在主node_modules目录中安装gulp所需的一些npm模块,gulp将不会将它们下载为嵌套。

目前你有类似的东西(这可能不是你的真实路径,但想法是一样的):

\node_modules\gulp\node_modules\lodash.bind\node_modules\lodash._createwrapper...

如果您将“lodash.bind”模块添加到项目的package.json中作为依赖项,它将与gulp一起安装在一个级别而不是gulp的依赖项

\node_modules\gulp
\node_modules\lodash.bind\node_modules\lodash._createwrapper

这将缩短所有网址。你需要修复一个或两个最长的路径,它会工作。 在我的项目中,添加这些依赖项就足够了:“lodash.createcallback”和“lodash.bind”到package.json来修复所有内容。

请记住,为此,您可能需要清除当前的node_modules文件夹。如果您无法做到这一点,因为关闭太长的网址,您可以创建symbolic link到临时短文件路径并删除它。