gpt4 book ai didi

terminal - Grunt - 从命令行传递文件名变量

转载 作者:行者123 更新时间:2023-12-01 09:24:06 25 4
gpt4 key购买 nike

我很难理解如何从 grunt 命令行传递部分文件名,以便在特定文件上运行任务(从已安装的 grunt 模块)。

我想要做的是配置一系列任务以从命令行获取文件名参数。

我已尝试修改此页面上的最后一个示例 http://chrisawren.com/posts/Advanced-Grunt-tooling但我有点在黑暗中刺伤。以为有人会快速回答。

这是我的 Gruntfile:

module.exports = function (grunt) {
grunt.initConfig({
globalConfig: globalConfig,

uglify: {
js: {
options: {
mangle: true
},
files: {
'js/<%= globalConfig.file %>.min.js': ['js/<%= globalConfig.file %>.js']
}
}
},



});

// Load tasks so we can use them



grunt.loadNpmTasks('grunt-contrib-uglify');

grunt.registerTask('go', 'Runs a task on a specified file', function (fileName){
globalConfig.file = fileName;
grunt.task.run('uglify:js');
});
};

我尝试像这样从命令行运行它:

grunt go:app

以 js/app.js 为目标

我收到此错误:

Aborted due to warnings.
roberts-mbp:150212 - Grunt Tasks robthwaites$ grunt go:app
Loading "Gruntfile.js" tasks...ERROR
>> ReferenceError: globalConfig is not defined
Warning: Task "go:app" not found. Use --force to continue.

谢谢

最佳答案

你可以使用 grunt.option。

您的 grunt register 任务将如下所示。

> grunt.option('fileName'); grunt.registerTask('go', 'Runs a task on a
> specified file', function (){
> grunt.task.run('uglify:js');
> });

你的 grunt 配置将是

module.exports = function (grunt) {
var fileName=grunt.option('fileName');
grunt.initConfig({
uglify: {
js: {
options: {
mangle: true
},
files: {
'js/fileName.min.js': ['js/fileName.js']
}
}
},
});

从终端运行任务的命令:

$ grunt go --fileName='xyzfile'

关于terminal - Grunt - 从命令行传递文件名变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28489848/

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