Tag: skydrive

Node.js项目依赖关系的过度recursion

因此,经过漫长的一天工作之后,我坐下来看到系统托盘中的Windows SkyDrive警报: Files can't be uploaded because the path of this file or folder is too long. Move the item to a different location or shorten its name. C:\Users\Matthew\SkyDrive\Documents\Projects\Programming\angular-app\server\node_modules\grunt-contrib-nodeunit\node_modules\nodeunit\node_modules\tap\node_modules\runforcover\node_modules\bunker\node_modules\burrito\node_modules\traverse\example\stringify.js …有一段时间,我嘲笑这种技术限制。 但是,我想知道:Node项目中的目录recursion是否真的有必要? 看起来超出"angular-app\server\node_modules"的path只是整个项目的依赖关系,可能会更好地expression为: C:\Users\Matthew\SkyDrive\Documents\Projects\Programming\angular-app\server\node_modules\grunt-contrib-nodeunit\ C:\Users\Matthew\SkyDrive\Documents\Projects\Programming\angular-app\server\node_modules\nodeunit\ C:\Users\Matthew\SkyDrive\Documents\Projects\Programming\angular-app\server\node_modules\tap\ C:\Users\Matthew\SkyDrive\Documents\Projects\Programming\angular-app\server\node_modules\runforcover\ C:\Users\Matthew\SkyDrive\Documents\Projects\Programming\angular-app\server\node_modules\bunker\ C:\Users\Matthew\SkyDrive\Documents\Projects\Programming\angular-app\server\node_modules\burrito\ C:\Users\Matthew\SkyDrive\Documents\Projects\Programming\angular-app\server\node_modules\traverse\ 我之前并没有真正考虑过这个问题,因为与许多平台相比,Node的包pipe理似乎很神奇。 我会想象一些大规模的Node.js项目甚至包含许多重复的模块(具有相同或相似的版本),这些模块可以合并为较less的数量。 有人可能会认为: 由于重复的依赖关系,存储和传输的数据量增加,增加了开发软件的成本。 较浅的目录结构(特别是在这种情况下)通常更易于浏览和理解。 过长的path名称可能会在某些计算环境中导致问题。 我所build议的(如果这样的事情不存在)是一个Node模块,它: recursion扫描Node项目,收集嵌套的node_modules文件夹的列表,以及相对于项目的根目录埋藏的深度。 将每个嵌套的node_modules文件夹的内容移动到主node_modules文件夹中,编辑每个.js文件的require()调用,以便不引用任何引用。 处理重复依赖项的多个版本 如果没有别的,它会做一个有趣的实验。 你们有什么感想? 我可能遇到什么潜在的问题?