【问题标题】:Installation of gulp through node.js's npm breaks windows通过 node.js 的 npm 安装 gulp 会破坏 windows
【发布时间】:2014-07-31 08:18:22
【问题描述】:

我想在我的 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

那么我的问题是,我该如何更改默认的“node_modules”目录名称?

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

  2. 停止使用 gulp。

那么,如何更改通过 npm 创建的默认 'node_modules' 目录或您实际建议的解决方案是什么?

【问题讨论】:

    标签: node.js npm gulp


    【解决方案1】:

    还有一个更棘手的选择。

    主要问题是 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 文件夹。如果由于 URL 太长而无法执行此操作,您可以创建 symbolic link 到临时短文件路径并将其删除。

    【讨论】:

    • 谢谢。我想我会走阻力最小的路,因为我还有一些项目要完成。所以这意味着我最终要放弃 gulp。 Gulp 似乎是一个不错的工具,可惜它不支持 Windows。我会在将来的某个时间尝试您的建议。感谢您的意见。
    • 我自己无意中偶然发现了这个问题 - 我的问题是在使用 Vagrant 时出现的,并且只有在 Vagrant VM 因某种原因损坏或被破坏时才会发生。尽管这些文件安装在 Windows 上的共享文件夹中并在 Windows 中进行了编辑,但它们只在 VM 上执行(由 LiveReload 输出到 Windows 上的 Chrome 触发),但除非我必须创建一个新 VM,否则什么都不会中断(发生了两次);那么这将成为一个问题。诡异的。感谢您雄辩地解释为什么我的“魔术”命令有效。
    猜你喜欢
    • 2019-03-03
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 2017-11-12
    • 2016-02-22
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    相关资源
    最近更新 更多