我目前是使用 JavaScript 构建 Windows 8 应用程序的团队的一员。我们正在使用 npm 和 browserify 来管理依赖项并将我们的模块转换为 AMD 浏览器友好的格式。
我们遇到的一个问题是疯狂的需求路径。这是因为我们的应用程序“组件”中有一个顶级文件夹。此文件夹包含一堆嵌套的 ui 组件/模块。这些模块有时需要 lib utils 和 helpers,它们位于 lib 目录中。
例如,位于“my/app/components/product/grid/item”中的模块可能需要位于“my/app/lib/helpers/view”的帮助模块。
require 路径有点疯狂而且非常丑陋: require("../../../../lib/helpers/view");
我们正在尽最大努力以模块化方式构建应用程序。现在我认为解决这个问题的正确方法是让我们的组件模块依赖于这些 util 辅助模块。我可以将 lib 助手放入他们自己的外部私有 git 存储库中,但这在让其他团队访问方面很痛苦(而且 git 私有存储库很慢)。另外,由于这些模块仅在应用程序中使用,因此进行更改、推送更改、然后返回应用程序和 npm 更新是浪费时间。这对某些人来说很好,但如果我们真的把它分解,它可能会很快变老。
我可以在组件 package.json 中执行 npm install "my/app/lib/helpers/view" 吗?但是 npm install 不会自动为我们执行此操作。
我知道解决这个问题的其他一些方法(NODE_PATH,可能使用 npm install hook 或 npm preinstall script),但想知道是否有其他人有类似的问题和好的解决方案。