Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自定义grunt Modernizer,带有非核心检测_Javascript_Gruntjs_Modernizr_Getusermedia - Fatal编程技术网

Javascript 自定义grunt Modernizer,带有非核心检测

Javascript 自定义grunt Modernizer,带有非核心检测,javascript,gruntjs,modernizr,getusermedia,Javascript,Gruntjs,Modernizr,Getusermedia,从我发现的那天起,我就把它用于我所有的前端项目 它包括grunt Modernizer,至少我认为它可以下载库并在调用构建任务时动态编译 grunt build 但我有一个小问题:默认情况下,它不包括我们可以在这里在线看到的“非核心检测”: 这是我的grunt Modernizer任务配置(Gruntfile.js文件的一部分): 你可以,看看他的答案 本质上 使用matchCommunityTests配置标志让grunt现代化 在代码中查找对非核心测试的引用,或命名它们 在测试配置中显式地

从我发现的那天起,我就把它用于我所有的前端项目

它包括grunt Modernizer,至少我认为它可以下载库并在调用构建任务时动态编译

grunt build
但我有一个小问题:默认情况下,它不包括我们可以在这里在线看到的“非核心检测”:

这是我的grunt Modernizer任务配置(Gruntfile.js文件的一部分):

你可以,看看他的答案

本质上

使用matchCommunityTests配置标志让grunt现代化 在代码中查找对非核心测试的引用,或命名它们 在测试配置中显式地


在提出这个问题时,grunt Modernizer的最新版本应该是0.4.1。假设OP使用的是最新版本:

在版本0.4.1中添加社区测试 显示了两个(可选)感兴趣的选项:

测试
(数组)

定义要隐式包含的任何测试。测试名称是小写的,用下划线分隔(如果需要)。查看完整的测试选项集

以及:

匹配社区测试
(布尔值)

parseFiles
=
true
时,将此布尔值设置为true将尝试匹配用户参与的测试。查看完整的社区测试集

您会注意到,可以添加到
tests
数组中的可用测试列表包括核心测试和社区测试。因此,如果您想显式地包含特定的社区测试,可以在
测试
数组选项中枚举它们。例如:

// This would be in a larger config file
tests: ["a_download", "css_remunit"]
但是如果您将
parseFiles
设置为true,并且希望
grunt modernizer
检测您的任何社区测试,则可以将
matchCommunityTests
设置为true

grunt modernizer
的发布配置不包含这两个选项,如果OP想要使用
modernizer.getusermedia
,他们可以简单地将
测试
数组设置为包含
“getusermedia”

其中,将
测试设置为包含
'getusermedia'
的数组将始终包含社区
getusermedia
测试

自动检测社区测试 (见、和。)

自动检测社区测试是有缺陷的。似乎无论
matchCommunityTests
设置为什么,
false
true
,现有的社区测试都将被下载并包含在自定义版本中。例如,此基本任务配置:

modernizr: {
    dist: {
        devFile: 'vendor/modernizr/modernizr.js',
        outputFile: 'js/modernizr.custom.js',
        uglify: false,
        files: {
            src: ['js/src/**/*.js']
        }
    }
}
这个简单的JS文件:

;(function (
    window,
    document,
    Modernizr
) {
    if (Modernizr.touch) {}
    if (Modernizr.cookies && Modernizr.cors && Modernizr.gamepad) {}
}(
    window,
    window.document
    Modernizr
));

结果是:。

我不知道这个属性,谢谢!但是我还有一个错误,我已经用这个问题更新了我的主题!除非手动编辑modernizr文件,否则应该使用grunt modernizr github问题跟踪器打开一个bug
modernizr: {
    devFile: '<%= yeoman.app %>/components/modernizr/modernizr.js',
    outputFile: '<%= yeoman.dist %>/components/modernizr/modernizr.js',
    extra: {
        'shiv' : true,
        'printshiv' : false,
        'load' : true,
        'mq' : false,
        'cssclasses' : true
    },
    extensibility: {
        'addtest': true,
        'prefixed': false,
        'teststyles': false,
        'testprops': false,
        'testallprops': false,
        'hasevents': false,
        'prefixes': false,
        'domprefixes': false
    },
    files: [
        '<%= yeoman.dist %>/scripts/{,*/}*.js',
        '<%= yeoman.dist %>/styles/{,*/}*.css',
        '!<%= yeoman.dist %>/scripts/vendor/*'
    ],
    uglify: true,
    // Explicitly include the `getusermedia` test
    tests: ['getusermedia']
}
modernizr: {
    dist: {
        devFile: '<%= yeoman.app %>/components/modernizr/modernizr.js',
        outputFile: '<%= yeoman.dist %>/components/modernizr/modernizr.js',
        extra: {
            'shiv' : true,
            'printshiv' : false,
            'load' : true,
            'mq' : false,
            'cssclasses' : true
        },
        extensibility: {
            'addtest': true,
            'prefixed': false,
            'teststyles': false,
            'testprops': false,
            'testallprops': false,
            'hasevents': false,
            'prefixes': false,
            'domprefixes': false
        },
        uglify: true,
        tests: ['getusermedia']
    }
}
modernizr: {
    dist: {
        devFile: 'vendor/modernizr/modernizr.js',
        outputFile: 'js/modernizr.custom.js',
        uglify: false,
        files: {
            src: ['js/src/**/*.js']
        }
    }
}
;(function (
    window,
    document,
    Modernizr
) {
    if (Modernizr.touch) {}
    if (Modernizr.cookies && Modernizr.cors && Modernizr.gamepad) {}
}(
    window,
    window.document
    Modernizr
));