Grunt任务在执行时不创建dist文件夹

时间:2014-04-02 04:25:20

标签: javascript node.js angularjs gruntjs

我有一个咕噜咕噜的任务,我用来连接&缩小文件。它使用了usemin软件包,直到创建一个.tmp文件夹,其中所有文件都已连接,但是没有创建dist文件夹并将脚本移入其中。不知道我在脚本中缺少什么来创建' dis'运行时的文件夹。任何帮助表示赞赏。

 'use strict';
 var mountFolder = function (connect, dir) {
return connect.static(require('path').resolve(dir));
 };

 module.exports = function (grunt) {

require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

var projectConfig = {
    app: ['./'],
    dist: 'dist'
};

grunt.log.write(projectConfig.app);

grunt.initConfig({
    project: projectConfig,

    clean: {
        dist: {
            files: [{
                dot: true,
                src: [
                    '.tmp',
                    '<%= project.dist %>/*',
                    '!<%= project.dist %>/.git*'
                ]
            }]
        },
    },

    useminPrepare: {
        html: '<%= project.app %>/app.html',
        options: {
            dest: '<%= project.dist %>',
            uglify: 'uglify'
        }
    },

    usemin: {
        html: '<%= project.app %>/app.html',
        css: ['<%= project.dist %>/**/*.css'],
        options: {
            dest: '<%= project.dist %>',
            assetDirs: '.tmp',
            basedir: '<%= project.app %>'
        }
    },
    copy: {
        dist: {
            files: [{
                expand: true,
                dot: true,
                cwd: '<%= project.dist %>',
                dest: '<%= project.dist %>',
                src: [
                    '*.{ico,txt,png}',
                    '.htaccess',
                    'lib*//***/*//*',
                    'img/{,*//*}*.{gif,webp}',
                    //'partials*//***/*//*',
                    'css/png*//***/*//*'
                ]
            }]
        }
    },

});

grunt.registerTask('default', [
    'clean:dist',
    'useminPrepare',
    'concat',
    'usemin'

]);

};

1 个答案:

答案 0 :(得分:0)

copy:dist设置中,您将cwd设置为与目标目录相同。

更改为:

cwd: '<%= yeoman.app %>',
dest: '<%= yeoman.dist %>',

但问题在于你定义了:

var projectConfig = {
    app: ['./'],
    dist: 'dist'
};

我希望看到app的值不是['./'],而是'app'。如果您进行第一次更改,我建议不更改目录结构,最终会使用app作为项目根目录的长度为1的位置数组,包括dist尝试复制到{{1}除非我遗漏了关于你结构的其他内容。