Javascript Grunt bower_concat未添加css
我尝试使用bower_concat从我的bower_组件编译所有css。js编译得很好,但是css永远不会被创建。以下是本节的grunt文件代码:Javascript Grunt bower_concat未添加css,javascript,gruntjs,bower,Javascript,Gruntjs,Bower,我尝试使用bower_concat从我的bower_组件编译所有css。js编译得很好,但是css永远不会被创建。以下是本节的grunt文件代码: bower_concat: { all: { dest: '<%= pkg.dist_dir %>/lib/_bower.js', cssDest: '<%= pkg.dist_dir %>/lib/_bower.css',
bower_concat: {
all: {
dest: '<%= pkg.dist_dir %>/lib/_bower.js',
cssDest: '<%= pkg.dist_dir %>/lib/_bower.css',
dependencies: {
// 'angular': ''
},
exclude: [
'jquery'
],
bowerOptions: {
relative: false
},
includeDev: true
}
},
bower_concat:{
全部:{
dest:'/lib/_bower.js',
cssDest:“/lib/_bower.css”,
依赖项:{
//“角度”:”
},
排除:[
“jquery”
],
博文:{
亲戚:错
},
includeDev:对
}
},
它从不创建“\u bower.css”。为什么不能正常工作?我的问题是css目录中缺少一个文件
bower: {
install: {
options: {
cleanTargetDir: true,
targetDir: '<%= pkg.dist_dir %>/lib'
}
}
},
bower:{
安装:{
选项:{
cleanTargetDir:对,
targetDir:“/lib”
}
}
},
在bower_concat之前,它可以获取所有第三方库,这就是为什么bower_concat不为我工作,至少不为css工作。我最终重新编写了整个Gruntfile,所以如果复制它,它应该可以正常工作。我用它做了一个模板,用于我未来的项目lol
这是完整的Gruntfile.js,希望在您查看它时它是有意义的
module.exports = function (grunt) {
require('time-grunt')(grunt);
require('load-grunt-tasks')(grunt);
grunt.initConfig({
//define pkg object and point to package.json
pkg: grunt.file.readJSON('package.json'),
//define notifications
notify_hooks: {
options: {
enabled: true,
max_jshint_notifications: 5, // maximum number of notifications from jshint output
title: "<%= pkg.name %>", // defaults to the name in package.json, or will use project directory's name
success: false, // whether successful grunt executions should be notified automatically
duration: 3 // the duration of notification in seconds, for `notify-send only
}
},
notify: {
build: {
options: {
title: '<%= pkg.name %> Build',
message: 'Build Completed'
}
},
js: {
options: {
message: 'Completed JS Build'
}
},
css: {
options: {
message: 'Completed CSS Build'
}
},
bower: {
options: {
message: 'Completed Bower'
}
}
},
//define clean task
clean: {
bower: ["<%= bower.install.options.targetDir %>", "bower_components"]
},
//define bower task
bower: {
install: {
options: {
cleanTargetDir: true,
targetDir: '<%= pkg.dist_dir %>/lib'
}
}
},
bower_concat: {
all: {
dest: '<%= pkg.dist_dir %>/lib/_bower.js',
cssDest: '<%= pkg.dist_dir %>/lib/_bower.css',
bowerOptions: {
relative: false
},
dependencies: {
'angular': ['jquery', 'moment'],
'datePicker': ['moment']
},
mainFiles: {
'ng-flags': 'src/directives/ng-flags.js'
},
includeDev: true
}
},
//define concat task to concat all js files
concat: {
js: {
options: {
separator: '\n'
},
src: [
'js/app/app.js', 'js/**/*.js'
],
dest: '<%= pkg.dist_dir %>/<%= pkg.name %>.js'
}
},
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n',
mangle: false
},
js: {
files: {
'<%= pkg.dist_dir %>/<%= pkg.name %>.min.js': ['<%= concat.js.dest %>']
}
}
},
jshint: {
files: ['Gruntfile.js', 'js/**/*.js', '!js/lib/*.js'],
options: {
globals: {
jQuery: true,
console: true,
module: true
}
}
},
//define less task
less: {
all: {
options: {
paths: ["css"]
},
files: {
"<%= pkg.dist_dir %>/<%= pkg.name %>.css": "css/<%= pkg.name %>.less"
}
}
},
less_imports: {
options: {
inlineCSS: false
},
all: {
src: [ 'css/**/*.less', '!<%= less_imports.all.dest %>', '!css/<%= pkg.name %>.less'],
dest: 'css/auto_imports.less'
}
},
//define the watch task. (documented at https://github.com/gruntjs/grunt-contrib-watch)
watch: {
js: {
files: ['<%= concat.js.src %>'],
tasks: ['build_js']
},
css: {
files: ['css/**/*.less'],
tasks: ['build_css']
},
grunt_file: {
files: ['Gruntfile.js'],
tasks: ['build']
}
}
});
//bower tasks
grunt.registerTask('bower_install', [ 'clean:bower', 'bower', 'bower_concat', 'notify:bower']);
grunt.registerTask('build_css', ['less_imports', 'less', 'notify:css']);
grunt.registerTask('build_js', ['jshint', 'concat:js', 'uglify:js', 'notify:js']);
// the default task can be run just by typing "grunt" on the command line
grunt.registerTask('build', [
'bower_install', 'build_css', 'build_js'
]);
grunt.registerTask('default', ['build']);
// Start the notification task.
grunt.task.run('notify_hooks');
};
module.exports=函数(grunt){
要求(“时间咕噜”)(咕噜);
要求('load-grunt-tasks')(grunt);
grunt.initConfig({
//定义pkg对象并指向package.json
pkg:grunt.file.readJSON('package.json'),
//定义通知
通知您:{
选项:{
启用:对,
max_jshint_通知数:5,//jshint输出的最大通知数
标题:“”,//默认为package.json中的名称,或将使用项目目录的名称
success:false,//是否应自动通知成功的grunt执行
持续时间:3//通知的持续时间,以秒为单位,表示“仅通知发送”
}
},
通知:{
建造:{
选项:{
标题:“构建”,
消息:“生成已完成”
}
},
js:{
选项:{
消息:“已完成JS构建”
}
},
css:{
选项:{
消息:“已完成CSS构建”
}
},
鲍尔:{
选项:{
消息:“已完成Bower”
}
}
},
//定义清理任务
清洁:{
鲍尔:['',“鲍尔_组件”]
},
//定义bower任务
鲍尔:{
安装:{
选项:{
cleanTargetDir:对,
targetDir:“/lib”
}
}
},
鲍尔·康卡特:{
全部:{
dest:'/lib/_bower.js',
cssDest:“/lib/_bower.css”,
博文:{
亲戚:错
},
依赖项:{
“角度”:[“jquery”,“矩”],
“日期选择器”:[“时刻”]
},
主要文件:{
“ng flags”:“src/directions/ng flags.js”
},
includeDev:对
}
},
//将concat任务定义为concat所有js文件
康卡特:{
js:{
选项:{
分隔符:'\n'
},
src:[
'js/app/app.js','js/***.js'
],
目标:'/.js'
}
},
丑陋的:{
选项:{
横幅:'/*!*/\n',
马槽:错
},
js:{
档案:{
“/.min.js”:[”]
}
}
},
jshint:{
文件:['Gruntfile.js','js/***.js','!js/lib/*.js'],
选项:{
全球:{
jQuery:true,
安慰:是的,
模块:正确
}
}
},
//定义较少的任务
减:{
全部:{
选项:{
路径:[“css”]
},
档案:{
“/.css”:“css/.less”
}
}
},
减少进口:{
选项:{
inlineCSS:false
},
全部:{
src:['css/***/.less'、'!'、'!css/.less'],
dest:'css/auto_imports.less'
}
},
//定义监视任务。(记录在https://github.com/gruntjs/grunt-contrib-watch)
观察:{
js:{
文件:[''],
任务:['build_js']
},
css:{
文件:['css/***/*.less'],
任务:['build_css']
},
grunt\u文件:{
文件:['grunfile.js'],
任务:[“构建”]
}
}
});
//鲍尔任务
grunt.registerTask('bower_install'、['clean:bower'、'bower'、'bower_concat',
mainFiles: {
package: [ 'path/to/its/file.css' ]
}
bower_concat: {
all: {
dest: {
'js': 'build/_bower.js',
'css': 'build/_bower.css'
}
}
}
Concatenation of any file types
The new API looks like this:
bower_concat: {
main: {
dest: {
js: 'build/_bower.js',
scss: 'build/_bower.scss',
coffee: 'build/_bower.coffee'
},
// ...
}
}
The old dest as a string ({dest: 'build/_bower.js'}) is still working but the cssDest was removed.