gpt4 book ai didi

javascript - 以编程方式控制 Grunt.js

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:40 25 4
gpt4 key购买 nike

我希望能够访问 grunt 生态系统中的许多可用插件和任务,以使我的生活更轻松,但我希望控制每个任务的运行时间和方式。最重要的是,我想要一种以编程方式运行 grunt 任务的方法,而不是从带有 Gruntfile 的文件夹中的命令行运行 grunt。因此,我开始研究 grunt-cligrunt 来寻找“方法”。

来自GruntJS的源代码:

// Expose the task interface. I've never called this manually, and have no idea
// how it will work. But it might.
grunt.tasks = function(tasks, options, done) {
...

正如您所看到的,奥尔曼先生提醒我们注意界面...我的问题是,有人让它工作吗?

到目前为止,我的实验让我相信以编程方式控制 grunt 的最佳方法是通过子进程模仿命令行调用:

$ npm install grunt-cli //notice no -g flag

// From runner.js
var exec =require('child_process').exec

exec('node_modules/.bin/grunt-cli tasks to run', {
cwd: 'path/to/directory/with/a/gruntfile'
}, function() { /* do stuff here */ });

这看起来很脏,所以我正在考虑简单地编写自己的任务运行程序来公开用于繁重任务的接口(interface)。不过,如果有人不顾奥尔曼先生的警告而成功使用 grunt.tasks(),我不想重复工作。

最佳答案

显而易见的答案似乎应该是编写一个繁重的任务来完成你想做的任何事情:)

然后你可以使用grunt.task.run()来控制其他grunt任务:http://www.gruntjs.org/article/grunt_task.html

您还可以在运行它们之前通过修改 grunt.config 轻松地动态更新它们的配置

还有一个答案可以回答您的问题: How can I run a grunt task from within a grunt task?

另请查看 grunt.task.start() ,它没有公开记录,但它似乎启动了所有任务 https://github.com/gruntjs/grunt/blob/master/lib/util/task.js#L246 (帽子提示:@jibsales)

关于javascript - 以编程方式控制 Grunt.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20248436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com