【问题标题】:grunt: possible to relocate "node_modules" for plugins?grunt:可以为插件重新定位“node_modules”吗?
【发布时间】:2015-12-15 20:08:00
【问题描述】:

如果我安装任何 grunt 插件,默认情况下,它会添加到我的项目目录根目录中名为“node_modules”的文件夹中。

我的问题:是否可以将整个文件夹(以及所有插件)移动到另一个位置(但仍在我的项目文件夹中),比如说“build/node_modules”?

当然,在此更改之后,我仍然希望能够从项目层次结构中的任何位置运行 grunt。

【问题讨论】:

    标签: gruntjs


    【解决方案1】:

    不,这是 Node.JS 核心文件的一个特性。在你不知道的情况下,Node.JS 是 Grunt 构建的平台。

    所有不指向绝对文件或以./ 开头的require() 调用都将尝试在node_modules 文件夹中查找模块。

    【讨论】:

    • 另见this issue,npm 维护者解释了为什么他不会让这成为可能
    • 谢谢!好的,所以虽然我只希望“node_modules”位于我的项目的子目录中(not 全局安装!),但这似乎也是不可能的。
    • 当然可以将 node_modules 安装为项目的子目录,事实上这正是你应该这样做的。如果你不熟悉安装节点依赖项,你应该在这里阅读它npmjs.org/doc/install.html
    • 好吧,我真正想要的是“node_modules”不是直接在我的项目文件夹下的目录,而是在我的项目文件夹的 subdir 中,如下所示:“ build/node_modules” 而不仅仅是:“node_modules”
    • 我想我宁愿有一个 node_module 路径,所以我不会拉下这些模块目录树,每个项目无限次。只是一个固定的位置,更多的项目可以借鉴。根据我所看到的其他模块使用的模块中的复制情况,node_module 结构似乎不会很好地扩展。
    【解决方案2】:

    你可以使用符号链接ln -s /original_node_modules_path/node_modules ./node_modules

    【讨论】:

      猜你喜欢
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 2019-03-13
      相关资源
      最近更新 更多