更改node_modules文件夹

时间:2015-10-26 15:19:10

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

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

唯一的另一个变化是相应修改gulpfile.js中的路径。

答案 1 :(得分:1)

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

从发行说明

  

扁平,扁平!

     

您的依赖项现在将最大程度地安装。就目前而言   可能的,所有依赖项,它们的依赖项,以及它们   依赖项将安装在项目的node_modules文件夹中   没有嵌套。您只会看到彼此嵌套的模块   当两个(或更多)模块具有冲突的依赖关系时。

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

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

     
      
  • npm uninstall会删除您指定的模块的任何依赖项,这些依赖项不是任何其他模块所必需的。以前,它   只会删除那些碰巧安装在它下面的那些,
      如果你被扣除,就会导致遗留下来。
  •   
  • npm ls现在向您展示您的依赖树围绕什么需要什么,而不是那些模块在磁盘上的位置。
  •   
  • #6937 npm重复数据删除现在除了重复数据删除之外还会展平树。
  •   

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

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