2016-01-04 20 views
1

我试图用咕噜,Modernizr的插件在我的项目,但我收到下面的输出,当我运行的任务:寻找Modernizr的引用

Running "modernizr:dist" (modernizr) task 

>> Explicitly including these tests: 
>> pointerevents 

Looking for Modernizr references 

我没有收到任何类型的错误终端会回到我所在的目录,就好像它只是放弃了一样。

这里是我的咕噜文件:从--verbose运行咕噜

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']); 
}; 

输出:

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 
+0

你试过运行'用'--verbose'标志grunt'? –

+0

我加从繁重的--verbose上述 – brandozz

回答

0

它看起来像你错过了源文件。 http://gruntjs.com/configuring-tasks#files-object-format

尝试包括

"dist": { 
    "files": { 
     "src": ['!<%= appDir %>assets/js/bower/modernizr/**'] 
    } 
} 
+0

我没有安装在我的项目凉亭,使目录目前不存在输出。 – brandozz

+0

好的。如果您可以下载modernizr js并将其放在根目录的某处并在此代码中参考,则可以修复您的错误。让我知道它是否适合你。 –

+0

因此,当我创建我的modernizr文件时,是否需要执行1.下载构建文件并下载grunt配置?我需要两个? – brandozz

1

这是我对面也来了,似乎是customizrgrunt-modernizr停止没有找到任何文件抓取(它爬行默认情况下)。

如果您将"crawl": false添加到应该解决问题的modernizr:dist任务中。我想"extensibility": [ "setClasses" ],应该是"options": [ "setClasses" ],

+0

有同样的问题,但想法是让它抓取您的代码,并让它为您的代码构建modernizr版本,不是吗? –

+1

有两种不同的用例。在我的系统中,我一直在寻找一种从一组已知的测试(基于基于Web的构建器的咕噜声构建confit)构建Modernizr的自动化方法,因此我不希望它抓取任何东西。在另一个例子中,您需要启用“抓取”功能,并且指定源文件时需要一个“files:{src:...}”部分。 – breams

+0

好吧,我尝试了同样的事情(从在线modernizr构建复制grunt配置),但是...他们都显示这个错误。 –

0

要使用grunt-modernizr任务来抓取你的代码为Modernizr引用你必须看看config propertiescustomizr任务,因为这是grunt-modernizr的node_modules部分:

modernizr: { 
    dist: { 
     dest: 'bower_components/modernizr/build/modernizr.custom.js', 
     uglify: false, 
     options: [ 
      'setClasses', 
      'addTest' 
     ], 
     files: { 
      src: ['js/app/**/*.js', 'js/app/*.js'] 
     } 
    } 
} 

devFile:似乎并不重要,你指向
目标:而不是outputFile,请注意我只是输出到一个构建目录不是包的一部分
丑化:假的,如果你有一个像bundleconfig.json其它缩小文件选项
选项:绕过默认选项{ "setClasses", "addTest", "html5printshiv", "testProp", "fnBind" }
文件:争取你的抓取主任(Y | IES),请确保你照顾根目录的文件和/或子目录以及


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

grunt.loadNpmTasks('grunt-contrib-clean'); 
grunt.loadNpmTasks('grunt-modernizr'); 
grunt.loadNpmTasks('grunt-contrib-copy'); 

参考'modernizr:dist'任务=>grunt.registerTask('default', ['clean', 'modernizr:dist', 'copy']);

这导致了unminified 34KB文件:

运行 “干净:文件”(清洁)任务
19道清洗。
运行:/ “Modernizr的DIST”(Modernizr的)任务
寻找Modernizr的引用
1的比赛在JS /应用/类yambo.options.js
bgpositionxy
1的比赛在JS /应用/模块/ yambo。 audio.js
音频
准备使用这些设置来构建:
setClasses,addTest
构建您的自定义Modernizr的... OK
成功!保存文件到bower_components/Modernizr的/编译/ modernizr.custom.js
过程与代码0
运行终止 “副本:主”(复印件)任务
复制的11个文件
进行的,没有错误。


这样没有必要,甚至去网上构建以添加一个功能测试。简单地引用Modernizr整个JS代码:

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 || {})); 

确保使用的correct property name的特征检测,所以customizr可以把它捡起来,并提供一个测试你的自定义生成。


这应该也可以用于css,但暂时还没有测试过。