Доступ к файлам вне проекта gulp - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь получить доступ к файлам .scss и записать файлы .css в каталог за пределами моего проекта gulp.Я настраиваю тему WordPress под названием UnderStrap, которая поставляется вместе с gulpfile.

Возможно, это необычная настройка, но я пытаюсь создать 2 набора CSS-файлов, один для родительской темы и один длядочерняя тема, так что темы независимы друг от друга.

themes  
├─ theme-parent  
│    ├─ sass  
│    ├─ css  
│    └─ gulpfile.js  
│  
└─  theme-child  
    ├─ sass (trying to access the .scss files here)  
    └─ css (trying to write the .css files here) 

Это то, что у меня есть в моем файле gulpfile.Кажется, что gulp.watch может обнаружить изменения в файле за пределами проекта, но gulp.src и gulp.dest не работают.Я посмотрел базу и переименовал, но, похоже, тоже не работает.Это просто невозможно?

gulp.task('sass', function () {
    var stream = gulp.src('./sass/*.scss')
        .pipe(wait(500))
        .pipe(plumber({
            errorHandler: function (err) {
                console.log(err);
                this.emit('end');
            }
        }))
        .pipe(sass())
        .pipe(gulp.dest('./css'))
        .pipe(rename('custom-editor-style.css'))
    return stream;
});

gulp.task('sass-child', function () {
    var stream = gulp.src('../theme-child/*.scss', {base: '.'})
        .pipe(wait(500))
        .pipe(plumber({
            errorHandler: function (err) {
                console.log(err);
                this.emit('end');
            }
        }))
        .pipe(sass())
        .pipe(gulp.dest('../theme-child/css'))
        .pipe(rename('custom-editor-style.css'))
    return stream;
});

gulp.task('watch', function () {
    gulp.watch('./sass/**/*.scss', ['styles']);
    gulp.watch('../theme-child/_theme_child.scss', ['styles-child']);
    gulp.watch([basePaths.dev + 'js/**/*.js','js/**/*.js','!js/theme.js','!js/theme.min.js'], ['scripts']);
    gulp.watch('./img/**', ['imagemin'])
});

gulp.task('minify-css', function() {
    return gulp.src('./css/theme.css')
    .pipe(sourcemaps.init({loadMaps: true}))
    .pipe(cleanCSS({compatibility: '*'}))
    .pipe(plumber({
        errorHandler: 
            function (err) {
                console.log(err);
                this.emit('end');
            }
    }))
    .pipe(rename({suffix: '.min'}))
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest('./css/'));
});

gulp.task('minify-css-child', function() {
    return gulp.src('../theme-child/css/theme.css')
    .pipe(sourcemaps.init({loadMaps: true}))
    .pipe(cleanCSS({compatibility: '*'}))
    .pipe(plumber({
        errorHandler: 
            function (err) {
                console.log(err);
                this.emit('end');
            }
    }))
    .pipe(rename({suffix: '.min'}))
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest('../theme-child/css/'));
});

gulp.task('styles', function(callback){ gulpSequence('sass', 'minify-css')(callback) });
gulp.task('styles-child', function(callback){ gulpSequence('sass-child', 'minify-css-child')(callback) });
...