2015-05-07 2 views
0

Я использую grunt для создания сценария кофе и меньше файлов в моем проекте. Теперь я хочу перейти к глотку ... но я столкнулся с некоторыми проблемами.Перемещение с Grunt на Gulp

В моем файле grunt, если глобальный объект содержит пути ко всем исходным и целевым каталогам. Каждая задача использует этот путь для поиска файлов для обработки.

grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    // Global configuration 
    globalConfig: { 
     //Source Paths 
     src: { 
      styleDirectory: "styles/", 
      customStyleDirectory: '<%= globalConfig.src.styleDirectory %>_Custom/', 
      scriptDirectory: "scripts/", 
      customScriptDirectory: '<%= globalConfig.src.scriptDirectory %>_Custom/', 
     }, 
     //Destination Paths 
     dest: { 
      outputRoot: "../", 
      styleOutput: "<%= globalConfig.dest.outputRoot %>css/", 
      scriptOutput: "<%= globalConfig.dest.outputRoot %>js/", 
     } 
    }, 
    // Compile coffee script to java script ----------------------------------------- 
    coffee: { 
     options: { .. }, 
     customOut: { 
      files: { 
       '<%= globalConfig.dest.scriptOutput %>Main.js': [ 
        '<%= globalConfig.src.customScriptDirectory %>_Root.coffee', 
        '<%= globalConfig.src.customScriptDirectory %>Logic/_Helpers.coffee', 
        '<%= globalConfig.src.customScriptDirectory %>**/*.coffee' 
       ] 
      } 
     } 
    } 
}); 

Как можно сделать что-то подобное с глотком? <% =%> похоже, не работает.

ответ

1

Во многом таким же образом, вы можете использовать multidimensional object из вашего файла gulpfile.js конфигурации:

var directories = { 
    styles: 'styles/', 
    scripts: 'scripts/', 
    dest: 'dest/' 
}; 

var paths = { 
    src: { 
     customStyles: directories.styles+'_Custom/', 
     customScripts: directories.scripts+'_Custom/' 
    }, 
    dest: { 
     styles: directories.dest + directories.styles, 
     scripts: directories.dest + directories.scripts 
    } 
}; 

Вы можете ссылаться на объект внутри ваших задач глотком следующим образом:

gulp.task('styles', function() { 
    return gulp.src(paths.src.styles + 'main.css') 
    ... 
}); 

// Rerun the task when a file changes 
gulp.task('watch', function() { 
    gulp.watch(paths.src.styles, ['styles']); 
    ... 
}); 
+0

Этот не решает мою проблему. Мне также нужен путь к 'styles /' или 'scripts /', и я не хочу иметь части пути дважды в моем скрипте ... – musium

+0

@musium Вы можете использовать «многомерные объекты» так же, как и Grunt. См. Мой отредактированный ответ. –

+0

Спасибо ... Еще не то, на что я надеялся (2 вместо 1 объекта) .. но он делает работу – musium

Смежные вопросы