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