Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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 bower_concat未添加css_Javascript_Gruntjs_Bower - Fatal编程技术网

Javascript Grunt bower_concat未添加css

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从我的bower_组件编译所有css。js编译得很好,但是css永远不会被创建。以下是本节的grunt文件代码:

  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目录中缺少一个文件

  • pkg.name.less(这需要与中定义的包名称匹配 json)并需要包含以下内容:@import“auto_imports.less” 这基本上包括由my grunt文件(auto_imports.less)自动生成的include,该文件包含一系列include(应用程序中可能包含的每个.less文件) 和汽车进口

    我还需要运行这个:

    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.