在依赖项上运行grunt

时间:2013-11-21 01:52:22

标签: javascript node.js npm gruntjs

我有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,但我还有其他路径也被破坏了。这意味着我需要手动跟踪所有这些,并确保它们在两种情况下都是正确的。这是相当脆弱的。
  3. 因此,我认为我没有正确地或以“正常方式”这样做。管理使用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文件夹中的上述模块。

1 个答案:

答案 0 :(得分:0)

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

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

README包含足够的文档以帮助您前进。