当前位置: 首页 > 面试题库 >

使用api运行grunt任务,无需命令行

宦文柏
2023-03-14
问题内容

我想在node.js代码中创建并运行grunt任务以供测试使用。

var foo = function() {
    var grunt = require("grunt");

    var options = {"blahblah": null} // ...creating dynamic grunt options, such as concat and jshint
    grunt.initConfig(options);
    grunt.registerTask('default', [/*grunt subtasks*/]);
}

但这是行不通的。Grunt似乎没有执行任何任务。我几乎可以肯定,有一些API可以在没有命令行的情况下在外部运行grunt任务,但是不知道该怎么做。

有什么办法吗?


问题答案:

您可以。我不知道为什么任何人都需要做这个,因为目前Grunt是一个 命令行工具警告:我不建议以这种方式运行Grunt。 但是这里是:

var grunt = require('grunt');

// hack to avoid loading a Gruntfile
// You can skip this and just use a Gruntfile instead
grunt.task.init = function() {};

// Init config
grunt.initConfig({
  jshint: {
    all: ['index.js']
  }
});

// Register your own tasks
grunt.registerTask('mytask', function() {
  grunt.log.write('Ran my task.');
});

// Load tasks from npm
grunt.loadNpmTasks('grunt-contrib-jshint');

// Finally run the tasks, with options and a callback when we're done
grunt.tasks(['mytask', 'jshint'], {}, function() {
  grunt.log.ok('Done running tasks.');
});


 类似资料:
  • 你可以用命令行选项-x来排除某些任务,让我们用上面的例子来示范一下. 例子 11.2. 排除任务 gradle dist -x test 命令的输出 > gradle dist -x test :compile compiling source :dist building the distribution BUILD SUCCESSFUL Total time: 1 secs 可以看到, tes

  • 你可以以列表的形式在命令行中一次调用多个任务. 例如 gradle compile test 命令会依次调用 compile 和 test 任务, 它们所依赖的任务也会被调用. 这些任务只会被调用一次, 无论它们是否被包含在脚本中:即无论是以命令行的形式定义的任务还是依赖于其它任务都会被调用执行.来看下面的例子. 下面定义了四个任务 dist和test 都 依赖于 compile ,只用当 com

  • 当你试图调用某个任务的时候, 你并不需要输入任务的全名. 只需提供足够的可以唯一区分出该任务的字符即可. 例如, 上面的例子你也可以这么写. 用 gradle di 来直接调用 dist 任务: 例 11.3. 简化任务名 gradle di 命令的输出 > gradle di :compile compiling source :compileTest compiling unit tests

  • 问题内容: com.android.ide.common.internal.LoggedErrorException:无法运行命令:C:\ Program Files \ ADT \ sdk \ android-ndk \ ndk-build.cmd NDK_PROJECT_PATH = null 这是尝试在android studio上的项目上运行make时得到的输出。我在android stu

  • 我想使用Gradle工具API通过Buildship插件从Eclipse插件调用Gradle。我能够运行基本的任务没有问题。 我的一个用例是在新的项目文件夹中执行任务,但是要以非交互方式工作,我必须在任务上传递命令行参数(或设置属性)。我在工具API中找不到任何方法来设置任务的属性或传递特定于任务的命令行参数。 我尝试了,但这被解释为一个参数来分级自己,这是无效的。 如何将参数传递给任务?

  • 我刚开始咕噜咕噜的。我正在尝试在我的Mac OSX Lion上配置Grunt。 我按照这里的说明,然后创建了一个包含下面文件的项目文件夹。当我尝试通过在终端中键入“grunt”来运行时,我会得到。我还修改了paths,希望添加路径可以使任务运行器工作,但它仍然不能工作。有人能帮忙吗?