我正在使用闭包编译器开发一个针对浏览器的JavaScript项目,但最近我一直在考虑开始使用browserify并遵循类似节点的开发方法:将项目拆分为多个较小的节点模块,使用grunt之类的东西构建一切,使用节点需要系统(感谢browserify)等。
为了在将整个项目切割成一些模块之后构建整个项目,我需要一种方法从每个模块中获取其脚本,资源,一些可选配置,并以递归方式对其依赖项执行相同操作。
有没有标准化的方法吗?任何模块已经在处理这个问题?有什么能为这项工作提供帮助吗?
根据要求,这是我需要的一个例子。我会尝试选择最复杂的一个。
该项目严重依赖HTML5 Canvas。它支持FlashCanvas,但我希望它在一个单独的模块中,因为我还想在没有FlashCanvas支持的情况下构建项目,因为我想在NPM上发布flashcanvas模块,所以它可以很容易地集成到其他项目中。
使用FlashCanvas支持构建时,我需要:
flashcanvas/flashcanvas.js
和flashcanvas/flashcanvas.swf
放在项目附带的数据目录中。<!--[if lt IE 9]><script src="flashcanvas/flashcanvas.js"></script><![endif]-->
。require('canvas')
替换require('flashcanvas')
,以覆盖创建画布的功能。我相信我的问题应该在使用browserify进行开发的人中非常普遍:某些模块提供您需要包含的资产(CSS文件,图像等)听起来很正常。我仍然无法找到解决问题的方法。我的方法是构建节点/浏览器化项目的正确方法吗?我怎么能从我的主模块的Gruntfile中获取上面列出的数据?