iamstarkov / gulp-bem-stub

Example BEM project building with gulp-bem
http://matmuchrapna.github.io/gulp-bem-stub/
26 stars 4 forks source link

Multiply pages generation #22

Open lilliputten opened 8 years ago

lilliputten commented 8 years ago

I can't understand how to generate several pages. Created new page template in pages/test/page/page.bemjson.js (with corresp. .styl and .dep.js files). But cant' figure out how to change gulpfile.js block:

gulp.task('html', ['deps', 'clean'], function () {
    delete require.cache[require.resolve('./pages/index/page/page.bemjson.js')];
    return deps.src('{bem}.bh.js')
        .pipe(bh(require('./pages/index/page/page.bemjson.js'), 'index.html'))
        .pipe(gulp.dest('./dist'));
});

The only option that I see--to make same blocks per all my source templates and combine them in one task (eg: gulp.task('all_html', ['html_index', 'html_test', ...]).

Is there an alternative?

UPDATE: SOLVED:

localBemjson = through 'bemjson', (file, config) ->
    filename = file.path.replace(/^.*pages[\/\\](.*?)[\/\\]page.*$/, '$1.html')
    delete require.cache[require.resolve(file.path)]
    deps.src '{bem}.bh.js'
        .pipe bh(require(file.path), filename)
        .pipe prettify()
        .pipe gulp.dest DEST_PATH

gulp.task 'pages', [ 'deps' ], ->
    gulp.src 'pages/*/page/page.bemjson.js'
        .pipe localBemjson()

(Using gulpfile.coffee.)

serhioone commented 8 years ago

@lilliputten столкнулся с той же задачей, не могли бы вы показать полный gulpfile?

lilliputten commented 8 years ago

@serhioone Не уверен, что у меня сохранился этот проект. Последнее время использую сборку на enb. Посмотрю вечером дома, если не забуду.

Вообще, сейчас уже не помню, что именно, но что-то тут меня не устраивало настолько серьёзно, что после той работы перестал использовать.

lilliputten commented 8 years ago

@serhioone Найденный gulpfile (.coffee) gulpfile.coffee.txt

++ Кажется, ещё одна вещь, в которую упёрся: ограничение на количество используемых блоков (в common.blocks). Возможно, был какой-то глюк, но сверх некоего количества используемых блоков (15-20, с 18-ю работало, но не помню, все ли использовались) они уже просто игнорировались.