可以grunt安装自己的插件吗?

时间:2014-07-21 06:55:38

标签: gruntjs npm

似乎想要在“干净”的机器上运行grunt,我们必须首先编写一个运行“npm install”的外部脚本。

有没有办法让grunt首先运行“npm install”来在devDependencies中安装它的插件?

1 个答案:

答案 0 :(得分:1)

Grunt只是一个节点模块,与任何其他模块一样,它使用npm进行依赖关系管理。据我所知,无法通过模块以编程方式访问npm本身。

但你的问题可以用咕噜咕噜的方式解决。 Grunt有一个名为grunt.task.exists的界面。您可以使用它来检查任务是否已加载以及某些内容是否已加载,然后运行grunt-shell包含npm install的任务。实现此目的的一种方法是动态创建别名:

function safeTasks(tasks) {
  exists: for (var task in config) {
    if (!grunt.task.exists(task)) {
      tasks.unshift('shell:dependencies');
      break exists;
    }
  }

  return tasks;
}

grunt.registerTask('default', safeTasks(['one', 'another']));

config是传递给grunt.initConfig()的对象。