【问题标题】:Change the location of the node_modules folder更改 node_modules 文件夹的位置
【发布时间】:2016-01-25 18:19:20
【问题描述】:

我目前正在尝试将旧的 ASP.NET 网站项目迁移到 Visual Studio 2015。我想使用 NPM/Gulp 将 LESS 文件自动编译为 CSS(此任务由 WebEssentials 在 VS 2013 中完成)。

我在项目中添加了一个package.json 文件来加载所需的组件。这会在 WebSite 项目的根目录中创建一个 node_modules 文件夹,这就是我的问题开始的地方:

由于网站项目没有项目文件,因此在项目根文件夹中找到的所有文件(和子目录)都会自动成为项目的一部分。由于node_modules内部的目录结构嵌套很深,会因为路径名太长而导致错误。

一个简单的解决方法是在node_modules 文件夹上设置hidden 属性(但这必须由每个开发人员手动完成)。

有没有办法告诉 NPM 将节点模块放入另一个目录,例如解决方案文件所在的项目 (..\node_modules) 上一层?

或者是否可以通过 gulp-task(在项目加载时运行)设置文件夹的 hidden 属性?

【问题讨论】:

  • 您可以反过来解决问题。在不同的位置创建您的网站根目录,并使用 gulp 编译源并将它们写入您的网站文件夹(即public)然后从您的解决方案目录运行 npm/gulp,并让您网站的入口点指向 @ 987654328@文件夹。
  • @Rik:我不确定 ASP.NET WebSite 项目是否可行,但我会考虑的。另外,如果可能的话,我宁愿不要对那个旧项目做太多改动。
  • 但是您正在某处添加 npm 文件。选择不在您网站文件夹中的任何位置,然后从那里使用gulp.src().pipe(dostuff).gulp.dest(path/to/website/dir)。使用 gulp.dest() 您可以将文件复制到任何位置。不需要任何结构更改。
  • 感谢@Rik,这行得通。 NPM/Gulp 也可以在解决方案级别添加(不仅在项目级别)。

标签: asp.net npm visual-studio-2015 node-modules web-site-project


【解决方案1】:

根据@Rik 的回答,我能够解决问题:

我没有将package.jsongulpfile.js 添加到网站项目中,而是在解决方案级别添加它们(作为解决方案项)。这意味着,node_modules 文件夹现在位于与网站项目相同级别的解决方案目录中。

唯一的其他更改是相应地修改 gulpfile.js 中的路径。

【讨论】:

    【解决方案2】:

    您可能想查看 npm 3.0+。它将模块安装在最平坦的结构中。它应该减少模块目录中的路径长度。

    来自发行说明

    平坦,平坦,平坦!

    您的依赖项现在将安装到最大平面。只要是 可能,您的所有依赖项及其依赖项,以及他们的 依赖项将安装在项目的 node_modules 文件夹中 没有嵌套。您只会看到相互嵌套的模块 当两个(或更多)模块具有冲突的依赖关系时。

    • #3697 这有望消除大多数情况,即 Windows 用户最终遇到的路径对于资源管理器和其他工具来说太长
      处理的标准工具。
    • #6912 (#4761 #4037) 这也意味着您的安装将从一开始就进行重复数据删除。
    • #5827 这种重复数据删除甚至扩展到 git deps。
    • #6936 (#5698) 现在可以识别各种命令的重复数据删除。

    这对其他命令的行为有一些影响:

    • npm uninstall 删除您指定的模块的任何其他模块不需要的任何依赖项。以前,它
      只会删除那些碰巧安装在它下面的,
      如果您曾经进行过重复数据删除,则会导致遗留问题。
    • npm ls 现在向您显示您的依赖关系树,它围绕需要什么而不是这些模块在磁盘上的位置进行组织。
    • #6937 除了重复数据删除之外,npm dedupe 现在还会展平树。

    https://github.com/npm/npm/releases/tag/v3.0.0

    要升级 Windows 安装,请查看此软件包 npm-windows-upgrade

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • 为答案添加了更多细节
    猜你喜欢
    • 2013-09-29
    • 2015-09-13
    • 2022-01-02
    • 2014-10-03
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    相关资源
    最近更新 更多