我目前是使用JavaScript构建Windows 8应用程序团队的一员。 我们使用npm和browserify来管理依赖关系,并将我们的模块转换为AMD浏览器友好格式。用于复杂应用程序结构的NodeJS本地模块
我们遇到的一个问题是疯狂的需要路径。这是因为我们的应用程序“组件”中有一个顶级文件夹。该文件夹包含一堆嵌套的UI组件/模块。这些模块有时需要驻留在lib目录中的lib utils和helper。
因此,例如,生活在“我的/应用/组件/产品/格/项目”模块可能需要位于“我的/应用/ lib中/助理/视图”的辅助模块。
需求路径有点疯狂,非常难看: require(“../../../../ lib/helpers/view”);
我们正在尽最大努力以模块化方式构建应用程序。现在我认为解决这个问题的正确方法是让我们的组件模块依赖于这些util辅助模块。我可以将lib帮助器放到他们自己的外部私人仓库回购站中,但这对于让其他团队访问(加上git私人回购缓慢)而言已经很痛苦。另外,由于这些模块仅用于应用程序,所以进行更改,推送更改,然后返回到应用程序和npm更新是浪费时间。这对一些人来说很好,但如果我们真的把这个打破了,它可能会变得很快。
我所能做的NPM安装的组件的package.json里面的 “我的/应用/ lib中/助理/视图”?但是npm install不会自动为我们做这件事。
我知道其他一些方法(NODE_PATH,也许使用npm安装钩子或可能npm预安装脚本),但想知道是否有其他人有类似的问题和良好的解决方案。
我现在的方法是运行一个批处理脚本,只要我们为NODE_PATH设置环境变量var。 – pbo 2013-03-09 19:11:05
好吧,多玩点npm链接可能是去这里的路。我让我的应用程序模块具有package.json文件,在这些模块中的npm链接使它们可用,然后从顶层npm链接它们。只有这里吸取的东西是我需要确保我们npm链接在全新安装,因为npm install不会为我链接这些模块。 – pbo 2013-03-09 19:39:12
我认为单独的回购就是要走的路。 – Domenic 2013-03-13 02:24:51