【问题标题】:Running gruntfile from devDependencies module从 devDependencies 模块运行 gruntfile
【发布时间】:2014-05-16 12:43:36
【问题描述】:

我正在做一些.js 框架测试。我有我的package.JSON,在 devDependencies 里面:

  "devDependencies": {
    "myFramework": "https://github.com/myRepo/myFramework/tarball/master",
    "grunt": "~0.4.2",
    // etc

这按预期工作,并将此框架安装在我的./node_modules/myFramework

这个模块(myFramework)编译我需要的文件。所以它需要运行一个 gruntfile.js 来编译。这些编译后的文件将在我的本地 gruntfile 中使用。关于如何做到这一点的任何想法?

我考虑过使用 npm 脚本,例如:

  "scripts": {
    "prepublish": "node node_modules/myFramework/Gruntfile.js",

但是这个例子不起作用。我在myFramework gruntfile 中有一个console.log('Test'); 并且没有任何记录...

【问题讨论】:

    标签: javascript node.js gruntjs npm


    【解决方案1】:

    刚刚提出的一个想法是,我可以将编译文件(来自节点模块 gruntfile)的任务复制并粘贴到我的本地 gruntfile 中。 当然更改任务的路径以反映现在文件位于/node_modules/myFramework/

    无论如何,我还是让问题保持开放,以检查是否有另一种(也许更好)的方法。

    【讨论】:

      【解决方案2】:

      除了当前所在的 repo 之外,您永远不必运行任何 Gruntfile 任务。

      就像您的 package.json 文件一样,每个存储库应该只有一个 Gruntfile.js。

      这怎么强调都不过分。需要多个 Gruntfile 的场景可以通过使用更简单的设置和基础设施来真正解决。 jQuery 在源存储库中拥有自己的 Gruntfile.js 这一事实与您的构建流程完全无关。另一个包可能会使用 Makefile 或任何其他方式来创建最终产品。您永远不必处理第三方库作者用来生成构建的工具。

      阅读更详细的分析:http://thanpol.as/grunt/Managing-large-scale-projects-with-Grunt/

      【讨论】:

      • 感谢您的反馈。我的仓库中只有一个gruntfile。我想要的是在另一个仓库中使用/导入来自 gruntfile 的任务。
      • 这个任务应该作为一个独立的 Grunt 插件发布
      猜你喜欢
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 2019-08-02
      • 2012-03-05
      相关资源
      最近更新 更多