yarkov
@yarkov
Помог ответ? Отметь решением.

Как сменить рабочую папку для задачи?

e61befe7bd8a4ac98bc4c7aa4d3f7f25.png
Разнес задачи gulp по разным файлам и решил заюзать так:

task compile_jade.js
module.exports = function (gulp, plugins, options) {
	return function () {
		// Компилирует файлы *.jade в *.html 
		// и отправляет в выходную папку
		gulp.task('compile_jade', function () {
			process.chdir('../../'); // пробовал сменить рабочую папку - не работает
			var JADE_VARS = require(options.jadevars);
			gulp.src([
					[options.input.jadedir, options.jade_mask].join('/'),
					['!' + options.input.jadedir, options.jade_exclude_mask].join('/')
				])
				.pipe(plugins.data(function(file) {
					return JADE_VARS;
				}))
				.pipe(plugins.jade({
					pretty: true
				}))
				.on('error', console.log)
				.pipe(plugins.angular_htmlify())
				.on('error', console.log)
				.pipe(plugins.html_prettify({
					indent_char: '\t', 
					indent_size: 1
				}))
				.on('error', console.log)
				.pipe(gulp.dest(options.output.jadedir));
		});
	};
};


gulpfile.js
var gulp = require('gulp');
var plugins = require('gulp-load-plugins')();

plugins.jsdoc 			= require("gulp-jsdoc3"); 
plugins.del 			= require('del'); 
plugins.csso 			= require('gulp-csso'); 
plugins.less 			= require('gulp-less');
plugins.uglify 			= require('gulp-uglify'); 
plugins.jade 			= require('gulp-jade'); 
plugins.concat 		= require('gulp-concat'); 
plugins.imagemin 		= require('gulp-imagemin');
plugins.livereload 		= require('gulp-livereload'); 
plugins.ngAnnotate 	= require('gulp-ng-annotate'); 
plugins.autoprefixer 	= require('gulp-autoprefixer'); 
plugins.angular_htmlify 	= require('gulp-angular-htmlify');
plugins.html_prettify 	= require('gulp-html-prettify');
plugins.runSequence 	= require('run-sequence'); 
plugins.rename 		= require("gulp-rename");
plugins.filesize 		= require('gulp-filesize');
plugins.rename 		= require('gulp-rename');	
plugins.data 			= require('gulp-data');

// В настройках указываем пути к нашим папкам и маски для поиска файлов
var options = require('./gulp/options');

function getTask(task) {
    return require('./gulp/gulp-tasks/' + task)(gulp, plugins, options);
}

// подгружаем таски
gulp.task('compile_jade', getTask('compile_jade'));
gulp.task('image_min', getTask('image_min'));
gulp.task('minify_js', getTask('minify_js'));
gulp.task('compile_less', getTask('compile_less'));
gulp.task('minify_css', getTask('minify_css'));
gulp.task('jsdoc', getTask('jsdoc'));

// и при попытке выполнить gulp jade получаем ошибку,
// потому что пути в options.js указаны относительно корня проекта,
// а файл с таском лежит на 2 уровня глубже...
gulp.task('jade', ['compile_jade']);


Можно ли как то указать рабочую папку во время выполнения таска?
  • Вопрос задан
  • 255 просмотров
Решения вопроса 1
yarkov
@yarkov Автор вопроса
Помог ответ? Отметь решением.
Пока решил так.
В каждом таске добавил gulp.src(/*paths...*/, {cwd: process.cwd()}) и gulp.dest(/*paths...*/, {cwd: process.cwd()}).
Но чувствую можно как-то не так ))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы