首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用不同的选项执行多个目标

如何用不同的选项执行多个目标
EN

Stack Overflow用户
提问于 2016-05-10 21:46:44
回答 3查看 68关注 0票数 0

目标:灵活执行jshint以将结果输出到控制台(如果正在开发中)或文件(如果发布/在Jenkins中)。

有可能吗?我可以在jshint设置中添加单独的目标,但是除了记者的详细信息之外,我的所有选项都是相同的。所以最好不要重复这些。我需要从" all“中进行连接,并使用所有全局选项和调用的目标的特定选项。多么?

jshint.js:

代码语言:javascript
复制
module.exports = {
    options: {
        node: true,
        browser: true,
        blah: blah...
    },
    all: [
        'Gruntfile.js',
        '<%= yeoman.app %>/modules/**/*.js',
        '<%= yeoman.app %>/*.js'
    ],
    dev: {
        options: {
            reporter: 'checkstyle'
        }
    }
    release: {
        options: {
            reporter: 'checkstyle',
            reporterOutput: 'myfile.xml'
        }
    }
};
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-11 21:27:00

最后,我选择了变量路由,但将其用于文件源文件,然后覆盖目标中的必要选项。

代码语言:javascript
复制
var files = [
    'Gruntfile.js',
    '<%= yeoman.app %>/modules/**/*.js',
    '<%= yeoman.app %>/*.js'
];

module.exports = {
    options: {
        reporter: require('jshint-stylish'),
        node: true, ...
    },
    dev: {
        src: files
    },
    release: {
        src: files,
        options: {
            reporter: 'checkstyle',
            reporterOutput: 'myfile.xml',
            reporterOutputRelative: false
        }
    }
}

基于我阅读过的其他内容,我认为默认选项不会在目标中工作,并允许重写,而且我也遇到了文件问题,但这解决了所有问题。

票数 0
EN

Stack Overflow用户

发布于 2016-05-11 08:58:37

我希望这能对你有所帮助,这只是一个例子,你可以改进代码。

安装: grunt-contrib-jshint

Gruntfile.js

代码语言:javascript
复制
//Jshint ===============================    
            var jshint;
            config.jshint = jshint ={};


            jshint.dist = {
                options: {jshintrc: ".jshintrc"},
                files: {all: ["lib/main.js","lib/test.js"]}
            };

            jshint.dev = {
                options: {jshintrc: ".jshintrc.dev"},
                files: {all: ["lib/main.js","lib/test.js"]}
            };

.jshintrc

代码语言:javascript
复制
{
        "strict":true,
        "laxcomma":true,
        "sub":true
}

.jshintrc.dev

代码语言:javascript
复制
{
        "strict":true,
        "laxcomma":true,
        "sub":true,
        "debug":true
}
票数 0
EN

Stack Overflow用户

发布于 2016-05-11 12:30:42

如果在两个目标之间有相同的选项子集,则可以为对象创建一个变量,并将其值赋给两个目标的option键:

代码语言:javascript
复制
var reporterOptions = {
        foo: 'red',
        bar: 'green',
        baz: 'blue'
    };

    module.exports = {
        options: {
            node: true,
            browser: true,
            blah: blah...
        },
        all: [
            'Gruntfile.js',
            '<%= yeoman.app %>/modules/**/*.js',
            '<%= yeoman.app %>/*.js'
        ],
        dev: {
            options: reporterOptions
        }
        release: {
            options: reporterOptions
        }
    };

如果希望在一个地方维护选项值,但希望有选择地决定将哪些选项应用于哪个目标,则可以使用点表示法引用存储在变量中的值。

代码语言:javascript
复制
var reporterOptions = {
    foo: 'red',
    bar: 'green',
    baz: 'blue'
};

module.exports = {
    options: {
        node: true,
        browser: true,
        blah: blah...
    },
    all: [
        'Gruntfile.js',
        '<%= yeoman.app %>/modules/**/*.js',
        '<%= yeoman.app %>/*.js'
    ],
    dev: {
        options: {
          foo: reporterOptions.foo
          bar: reporterOptions.bar
        }
    }
    release: {
        options: {
          foo: reporterOptions.foo
          baz: reporterOptions.baz
        }
    }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37149523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档