在另一个文件中包含 G运行tfile 和 运行 任务
Include Gruntfile and run a task in an another file
我有一个使用 G运行t 的应用程序,它在我的终端中启动,我想 运行 通过另一个应用程序执行任务。
所以我想知道如何将我的 Gruntfile.js 包含到这个其他应用程序,以及 运行 任务。
现在这个新应用程序非常基础,只需使用 NodeJS 构建一个简单的本地网页,并带有一个启动任务的按钮。
G运行tfile(我要运行"archive"任务)
module.exports = function (grunt) {
require('time-grunt')(grunt);
require('jit-grunt')(grunt, {
ngtemplates: "grunt-angular-templates"
});
var Generator = require("./generator.js")(grunt);
var generator = new Generator();
generator.printLogo();
// Build
grunt.registerTask("build", function (fileType) {
//definition of build task
grunt.task.run(tasks);
});
// Archive Task.
grunt.registerTask("archive", ["build", "compress", "clean:post-rsync"]);
};
Other file : (我尝试了一个require,它似乎可以工作,但是我不能运行 G运行tfile的"archive"任务。)
var grunt = require('grunt');
var gruntfile = require('./Gruntfile.js')(grunt);
var app = express();
app.get('/', function(req, res){
res.render('test.ejs');
});
app.post('/create', function(req, res){
//run grunt task "archive" here
//gruntfile.grunt.registerTask("archive", ["build"]);
res.redirect('/');
});
app.listen(8080);
你知道我怎么能把我的 g运行t 文件中的任务 运行 放到另一个文件中吗?
(函数 printLogo() 正在运行,所以我确定包含 G运行tfile)
非常感谢(我是 G运行 的初学者,如有遗漏,请见谅)
您可以 运行 来自节点的命令。这样你就不必担心依赖关系等等。你只需像往常一样生成 g运行t,除了以编程方式。
var spawn = require('child_process').spawn;
// This will run the 'archive' task of grunt
spawn('grunt', ['archive'], {
cwd: 'path/to/grunt/project'
});
Grunt 是一个命令行工具,这里最简洁的方法是重构您的 Gruntfile
并将任务的逻辑提取到库中。
然后您可以从您的 Gruntfile
的任务中调用该图书馆,并且您也可以从您的 /create
路线中调用您的图书馆。
您可以使用 grunt-hub 插件:
grunt.initConfig({
hub: {
all: {
src: ['../*/Gruntfile.js'],
tasks: ['jshint', 'nodeunit'],
},
},
});
我有一个使用 G运行t 的应用程序,它在我的终端中启动,我想 运行 通过另一个应用程序执行任务。 所以我想知道如何将我的 Gruntfile.js 包含到这个其他应用程序,以及 运行 任务。
现在这个新应用程序非常基础,只需使用 NodeJS 构建一个简单的本地网页,并带有一个启动任务的按钮。
G运行tfile(我要运行"archive"任务)
module.exports = function (grunt) {
require('time-grunt')(grunt);
require('jit-grunt')(grunt, {
ngtemplates: "grunt-angular-templates"
});
var Generator = require("./generator.js")(grunt);
var generator = new Generator();
generator.printLogo();
// Build
grunt.registerTask("build", function (fileType) {
//definition of build task
grunt.task.run(tasks);
});
// Archive Task.
grunt.registerTask("archive", ["build", "compress", "clean:post-rsync"]);
};
Other file : (我尝试了一个require,它似乎可以工作,但是我不能运行 G运行tfile的"archive"任务。)
var grunt = require('grunt');
var gruntfile = require('./Gruntfile.js')(grunt);
var app = express();
app.get('/', function(req, res){
res.render('test.ejs');
});
app.post('/create', function(req, res){
//run grunt task "archive" here
//gruntfile.grunt.registerTask("archive", ["build"]);
res.redirect('/');
});
app.listen(8080);
你知道我怎么能把我的 g运行t 文件中的任务 运行 放到另一个文件中吗? (函数 printLogo() 正在运行,所以我确定包含 G运行tfile)
非常感谢(我是 G运行 的初学者,如有遗漏,请见谅)
您可以 运行 来自节点的命令。这样你就不必担心依赖关系等等。你只需像往常一样生成 g运行t,除了以编程方式。
var spawn = require('child_process').spawn;
// This will run the 'archive' task of grunt
spawn('grunt', ['archive'], {
cwd: 'path/to/grunt/project'
});
Grunt 是一个命令行工具,这里最简洁的方法是重构您的 Gruntfile
并将任务的逻辑提取到库中。
然后您可以从您的 Gruntfile
的任务中调用该图书馆,并且您也可以从您的 /create
路线中调用您的图书馆。
您可以使用 grunt-hub 插件:
grunt.initConfig({
hub: {
all: {
src: ['../*/Gruntfile.js'],
tasks: ['jshint', 'nodeunit'],
},
},
});