Gruntjs 寻找现代化的参考资料

Gruntjs 寻找现代化的参考资料,gruntjs,modernizr,Gruntjs,Modernizr,我试图在我的项目中使用grunt Modernizer插件,但在运行任务时,我收到了以下输出: Running "modernizr:dist" (modernizr) task >> Explicitly including these tests: >> pointerevents Looking for Modernizr references 我没有收到任何类型的错误,终端只是返回到我所在的目录,好像它只是放弃 这是我的grunt文件: module.exp

我试图在我的项目中使用grunt Modernizer插件,但在运行任务时,我收到了以下输出:

Running "modernizr:dist" (modernizr) task

>> Explicitly including these tests:
>> pointerevents

Looking for Modernizr references
我没有收到任何类型的错误,终端只是返回到我所在的目录,好像它只是放弃

这是我的grunt文件:

module.exports = function(grunt) {
    grunt.initConfig ({
    // Do grunt-related things in here
        pkg: grunt.file.readJSON('package.json'),

        modernizr: {
          dist: {
              "dest": "javascripts/modernizr-custom.js",
              "parseFiles": true,
              "customTests": [],
              "devFile": "javascripts/modernizr-custom.js",
              "outputFile": "javascripts/min/modernizr-custom.min.js",
              "tests": [
                  "pointerevents",
                  "css/pointerevents"
              ],
              "extensibility": [
                  "setClasses"
              ],
              "uglify": false
          }
        },

        cssmin: {
          target: {
            files: {
                'css/min/bootstrap.min.css': ['css/bootstrap.css']
            }
          }
        },              
    });
    grunt.loadNpmTasks("grunt-modernizr");
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.registerTask('default',['modernizr', 'cssmin']);
};
运行grunt的输出--详细:

Initializing
Command-line options: --verbose

Reading "gruntfile.js" Gruntfile...OK

Registering Gruntfile tasks.
Reading package.json...OK
Parsing package.json...OK
Initializing config...OK

Registering "grunt-modernizr" local Npm module tasks.
Reading /Applications/MAMP/htdocs/bootstrap-three-wordpress/wp-content/themes/brandozz/node_modules/grunt-modernizr/package.json...OK
Parsing /Applications/MAMP/htdocs/bootstrap-three-wordpress/wp-content/themes/brandozz/node_modules/grunt-modernizr/package.json...OK
Loading "modernizr.js" tasks...OK
+ modernizr

Registering "grunt-contrib-cssmin" local Npm module tasks.
Reading /Applications/MAMP/htdocs/bootstrap-three-wordpress/wp-content/themes/brandozz/node_modules/grunt-contrib-cssmin/package.json...OK
Parsing /Applications/MAMP/htdocs/bootstrap-three-wordpress/wp-content/themes/brandozz/node_modules/grunt-contrib-cssmin/package.json...OK
Loading "cssmin.js" tasks...OK
+ cssmin
Loading "gruntfile.js" tasks...OK
+ default

No tasks specified, running default tasks.
Running tasks: default

Running "default" task

Running "modernizr" task

Running "modernizr:dist" (modernizr) task
Verifying property modernizr.dist exists in config...OK
Files: -> javascripts/modernizr-custom.js
Verifying property modernizr exists in config...OK

>> Explicitly including these tests:
>> pointerevents

Looking for Modernizr references
看起来您丢失了源文件。

尽量包括

"dist": {
    "files": {
        "src": ['!<%= appDir %>assets/js/bower/modernizr/**']
    }
}
“dist”:{
“文件”:{
“src”:['!assets/js/bower/modernizer/**']
}
}

这也是我刚刚遇到的问题,似乎是
grunt Modernizar
Customizer
找不到任何要爬网的文件后停止(默认情况下它会爬网)

如果将
“爬网”:false添加到应该解决问题的
现代化:dist
任务中

另外,我认为
的“可扩展性”:[“setClasses”],
应该是
的“选项”:[“setClasses”],
要使用任务为
Modernizer
引用爬网您的代码,您必须查看
Customizer
任务,因为这是
grunt Modernizer
节点模块的一部分:

modernizr: {
    dist: {
        dest: 'bower_components/modernizr/build/modernizr.custom.js',
        uglify: false,
        options: [
            'setClasses',
            'addTest'
        ],
        files: {
            src: ['js/app/**/*.js', 'js/app/*.js']
        }
    }
}
devFile:你指向哪里似乎无关紧要
dest:而不是
outputFile
,注意我只是输出到一个不属于包的构建目录
uglify:false,如果您有其他缩小选项,如bundleconfig.json
选项:绕过默认选项
{“setClasses”、“addTest”、“html5printshiv”、“testProp”、“fnBind”}

文件:要登记可爬行控制器(y | ies),请确保同时管理根文件和/或子目录


在我的情况下,加载所需的任务:

grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-modernizr');
grunt.loadNpmTasks('grunt-contrib-copy');
请参阅
'modernizer:dist'
task=>
grunt.registerTask('default'、['clean'、'modernizer:dist'、'copy'])

这将导致未统一的34kb文件:

正在运行“清理:文件”(清理)任务
已清理19条路径。
运行“Modernizer:dist”(Modernizer)任务
正在寻找现代化参考资料
js/app/classes/yambo.options.js中有1个匹配项
bgXY
js/app/modules/yambo.audio.js中有1个匹配项
音频
已准备好使用这些设置进行构建:
设置类,添加测试
构建您的定制现代化…好的
成功!已将文件保存到bower_components/modernizer/build/modernizer.custom.js
进程以代码0终止。
正在运行“复制:主”(复制)任务
复制了11个文件
完成,没有错误


这样,甚至不需要在线构建来添加特性测试。只需在整个js代码中引用
modernizer

window.Yambo = (function($, modernizr, ns){
    ns.Audio = {
        extension: (function () {
            return modernizr && modernizr.audio.mp3
                ? 'mp3'
                : modernizr.audio.ogg
                ? 'ogg'
                : 'wav';
        }())
    };

    return ns;
}(window.jQuery, window.Modernizr, window.Yambo || {}));
确保将用于功能检测,以便
customizer
可以拾取它并为自定义版本提供测试



这对于css也是可能的,但目前还没有进行测试。

您是否尝试过使用
--verbose
标志运行
grunt
?我添加了grunt--verbose上面的输出我的项目中没有安装bower,因此目录当前不存在。确定。如果您可以下载modernizr js并将其放在根目录的某个地方,并在代码中引用此处,则可能会修复您的错误。让我知道它是否适合你。所以当我创建我的Modernizer文件时,我需要做1。下载构建文件和2。下载grunt配置?我两者都需要?谢谢你的帮助,但我目前的解决方案是下载构建并将其保存到modernizr.js文件中,然后以旧的方式链接到它。我已经浪费了很多时间试图让grunt Modernizer工作,所以我现在只使用grunt for grunt contrib cssmin。我将尝试使用其他一些插件,并在另一个时间返回。有同样的问题,但想法是让它抓取您的代码,并让它为您的代码构建一个现代化版本,不是吗?有两种不同的用例。在我的工作中,我正在寻找一种通过一组已知测试(基于他们基于web的构建器的grunt build confit)自动构建Modernizer的方法,因此我不希望它爬行任何东西。在另一个例子中,您需要启用
爬网
,并在
文件:{src:…}
部分指定源文件。我也尝试了同样的方法(从联机Modernizer构建中复制了grunt配置),但是。。。他们都显示了这个错误。根据Modernizr构建站点上构建配置的格式,它们实际上与grunt Modernizr不兼容。基本上,
parseFiles
什么也没做,应该是
crawl
,多个输出文件选项被忽略了,应该是
dest
,如果你试图解析文件,你需要使用
文件:{src:['*.css','*.js']}
或类似的东西显式添加它们。