有没有一种通用的方式来消耗我的依赖的咕build生成过程?

比方说,我有一个项目,我想使用Lo-Dash和jQuery,但是我不需要所有的function。

当然,这两个项目都有构build工具,所以我可以精确编译我需要的版本,以节省宝贵的带宽和parsing时间,但是我觉得在本地安装它们并生成我的版本,然后将它们检入到我的系统中是非常不舒服和难看的库。

更重要的是,我想将自己的咕噜声过程整合到我自己的行列中,并在旅途中创build自定义的构build,这将更加可维护。

Lo-Dash团队通过一个专门的cli来提供这个function,甚至用一个咕task的任务来包装它。 这确实是非常好的,但我想要一个通用的解决scheme,因为它不应该有每个软件包作者复制这个问题。

我试图用grunt-shell hackery来做到这一点,但据我所知,devDependencies不可能超过一个级别,这使得执行所需的grunt任务变得更加难以实现。

那么你对此有什么看法呢,还是应该把这个转到0.5.0讨论的咕噜声?

你问什么,假定这个软件包有:

  1. 依靠Grunt来构build分布; 大多数stream行的库都有,但是一些不太常见的库仍然可以使用shell脚本或npm run命令来进行一般缩小/压缩。

  2. 用Modernizr或Lo-Dash这样的专用工具首先生成一个自定义的构build方法。

你也许可以用一个通用的代码来代替数字2,它parsing你的源代码和库代码,并使用代码覆盖来消除库中不必要的function。 这已经被开发出来了(见金矿 ),但是我不能说这是多么的好,因为我没有使用它。

另外,我不确定在有很多相互依赖关系的AMD环境下,这是如何工作的。 理想情况下,您将能够运行r.js优化器并获得用于生产的杏仁构build,然后过滤不必要的function(很可能是伊斯坦布尔,然后必须确保过滤的脚本通过了所有的单元/集成testing)。 不知道如何最终会看,但如果可能发生这将是非常酷。 🙂

但是,还有一个任务,尤其是从“sub-gruntfiles”运行Grunt任务,您可能想看看: grunt-subgrunt 。