【问题标题】:Is there a generic way to consume my dependency's grunt build process?有没有一种通用的方法来使用我的依赖项的 grunt 构建过程?
【发布时间】:2013-12-07 10:23:12
【问题描述】:

假设我有一个项目,我想使用 Lo-Dash 和 jQuery,但我不需要所有功能。

当然,这两个项目都有构建工具,所以我可以准确地编译我需要的版本,以节省宝贵的带宽和解析时间,但我认为在本地安装它们,生成我的版本然后检查它们是非常不舒服和丑陋的它进入我的存储库。

我更愿意将他们的 grunt 流程集成到我自己的流程中,并在旅途中创建自定义构建,这样更易​​于维护。

Lo-Dash 团队通过专用的cli 提供此功能,甚至用grunt task 包装它。这确实很好,但我想要一个通用的解决方案来解决这个问题,因为没有必要让每个包作者都复制这个。

我试图通过 grunt-shell 黑客以某种方式实现这一点,但据我所知,devDependencies 不可能超过一层,这使得执行所需的 impossible 更加难看繁重的任务。

那么您对此有何看法,或者我应该将其移至 grunt 的 0.5.0 discussion 吗?

【问题讨论】:

    标签: node.js build npm gruntjs


    【解决方案1】:

    你问的假设包有:

    1. 依赖 Grunt 来构建发行版;大多数流行的库都有这个,但一些不太常见的库可能仍然使用 shell 脚本或 npm run 命令进行一般的缩小/压缩。

    2. 首先使用诸如 Modernizr 或 Lo-Dash 等专用工具生成自定义构建的某种方式。

    您也许可以用一个通用的替换数字 2,它解析您的源代码和库代码,并使用代码覆盖来消除库中不必要的函数。这已经在开发中(请参阅goldmine),但是我无法断言它有多好,因为我没有使用它。

    另外,我不确定这在有很多相互关联的依赖项的 AMD 环境中如何工作;理想情况下,您将能够运行 r.js 优化器并获得用于生产的杏仁构建,然后对其进行过滤以获取不必要的功能(很可能是伊斯坦布尔,然后必须确保过滤后的脚本通过了所有单元/集成测试)。不知道最终会是什么样子,但如果能发生这种情况会很酷。 :-)

    但是,有一个任务专门用于从“sub-gruntfiles”运行 Grunt 任务,您可能想看看:grunt-subgrunt

    【讨论】:

    • grunt-subgrunt 几乎正是我所要求的 \o/ 不知道我怎么会错过它。非常感谢。
    • 很高兴我能帮上忙。 :-)
    猜你喜欢
    • 1970-01-01
    • 2015-07-17
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多