【问题标题】:Running grunt on dependencies在依赖项上运行 grunt
【发布时间】:2013-12-05 07:59:56
【问题描述】:

我有 3 个项目都使用 grunt。

项目 a 依赖于项目 c 和 b
项目 b 依赖于项目 c
项目 c 不依赖任何东西

项目 a 和 b 都需要一个编译项目 c 的步骤(这是一个包含我们组织的全局样式的样式存储库)。

我正在尝试为项目 b 运行 grunt post install。

这里有几个问题。

  1. 项目 a 和 b 都尝试在其构建过程中构建项目 c。这需要一些时间,我宁愿避免它。
  2. 项目 b 在单独运行时需要不同的路径。 loadNpmTasks 失败,除非我 grunt.file.setBase,但是我还有其他路径也被破坏了。这意味着我需要手动跟踪所有这些,并确保它们在两种情况下都是正确的。这是相当脆弱的。

因此,我认为我没有正确或以“正常方式”执行此操作。管理使用 grunt 的依赖项的适当方法是什么?

更新

主要问题是无论我选择哪种解决方案,都会出现以下错误:

找不到本地 Npm 模块“grunt-contrib-compass”。安装了吗?
未找到本地 Npm 模块“grunt-contrib-handlebars”。安装了吗?
未找到本地 Npm 模块“grunt-contrib-requirejs”。安装了吗?
未找到本地 Npm 模块“grunt-contrib-watch”。安装了吗?
未找到本地 Npm 模块“grunt-notify”。安装了吗?
未找到本地 Npm 模块“grunt-curl”。安装了吗?
未找到本地 Npm 模块“grunt-shell”。安装了吗?

我尝试生成一个任务并通过命令行调用 grunt。我尝试使用各种插件来提供帮助。我认为问题在于顶层和依赖项都需要这些任务。这意味着它们被拉到父 node_modules 文件夹中。因此,依赖项在其 node_modules 文件夹中缺少上述模块。

【问题讨论】:

    标签: javascript node.js npm gruntjs


    【解决方案1】:

    我在构建grunt-grunt 时正是考虑到了这种情况。

    grunt.initConfig({
        grunt: {
            lintsome: {
                gruntfile: 'node_modules/some/Gruntfile.js',
                task: 'jshint'
            }
        }
    });
    

    README 包含足够的文档来帮助您进行操作。

    【讨论】:

    • 似乎几乎可以工作。但是,我确实遇到了错误。更新了描述。
    • 0.2.0 不应该再有这个问题了。我更新了任务以使用 Gruntfile 作为当前工作目录,而不是通过 --gruntfile
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2013-02-14
    相关资源
    最近更新 更多