Node.js:递归地从依赖项中获取构建配置

时间:2014-06-06 23:29:03

标签: javascript node.js gruntjs browserify

我正在使用闭包编译器开发一个针对浏览器的JavaScript项目,但最近我一直在考虑开始使用browserify并遵循类似节点的开发方法:将项目拆分为多个较小的节点模块,使用grunt之类的东西构建一切,使用节点需要系统(感谢browserify)等。

为了在将整个项目切割成一些模块之后构建整个项目,我需要一种方法从每个模块中获取其脚本,资源,一些可选配置,并以递归方式对其依赖项执行相同操作。

有没有标准化的方法吗?任何模块已经在处理这个问题?有什么能为这项工作提供帮助吗?


根据要求,这是我需要的一个例子。我会尝试选择最复杂的一个。

该项目严重依赖HTML5 Canvas。它支持FlashCanvas,但我希望它在一个单独的模块中,因为我还想在没有FlashCanvas支持的情况下构建项目,因为我想在NPM上发布flashcanvas模块,所以它可以很容易地集成到其他项目中。

使用FlashCanvas支持构建时,我需要:

  • flashcanvas/flashcanvas.jsflashcanvas/flashcanvas.swf放在项目附带的数据目录中。
  • 在HTML页面中加入<!--[if lt IE 9]><script src="flashcanvas/flashcanvas.js"></script><![endif]-->
  • 如果我使用closure-compiler进行编译,则必须将FlashCanvas外部文件传递给编译器。
  • 传递一个浏览器选项,用require('canvas')替换require('flashcanvas'),以覆盖创建画布的功能。
  • 如果FlashCanvas依赖于其他模块(这个模块不是这种情况),请从依赖项中获取assets / configuration / whatever。

我相信我的问题应该在使用browserify进行开发的人中非常普遍:某些模块提供您需要包含的资产(CSS文件,图像等)听起来很正常。我仍然无法找到解决问题的方法。我的方法是构建节点/浏览器化项目的正确方法吗?我怎么能从我的主模块的Gruntfile中获取上面列出的数据?

0 个答案:

没有答案