Ответы пользователя по тегу Node.js
  • Почему gulp (v4) выдает "Did you forget to signal async completion?"?

    @RaDir Автор вопроса
    Спасибо за ответы, но разобрался сам и решил вопрос так:
    arrBlocksNames.forEach(function(blocksName) {
        gulp.task(blocksName, function() {
            return gulp.src(blocksName + '/**/*.css')
                .pipe(clean({force: true}));
        });
    });
    Ответ написан
    Комментировать
  • Как исправить ошибку "ERROR in Entry module not found: Error: Can't resolve" в Webpack?

    @RaDir Автор вопроса
    Ставим лоадер ejs-render-loader.

    В своем webpack.config.js исправил:
    ...
    for (var title in titles) {
        pluginsOptions.push(
            new HtmlWebpackPlugin({
                title: titles[title],
                template: `./${title}/${title}.ejs`, // здесь убираем "ejs-render!"
                chunks: [title],
                filename: `${title}.html`
            })
        );
    };
    ...
     {
                    test: /\.ejs$/,
                    use: ['ejs-render-loader'] // указываем лоадер, который поставили
                },
    ...


    Все, теперь шаблонизатор честно отрабатывает потраченное на него время.
    home.ejs:
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>TestTitle</title>
    </head>
    <body>
        <%- include('logo', {class1: 'classContent1', class2: 'classContent2'}) %>
        <hr>
        <p>Custom content goes here.</p>
    </body>
    </html>


    logo.ejs:
    <div class="logo<%= class1 %><%= class2 %>">Logo goes here.</div>


    Но такая шаблонизация не гибкая, и накладывает ограничения. Например такие, если в home.ejs не передашь параметр "class1", то поймаешь ошибку при компиляции, и условия в logo.ejs тебя не спасут.

    Шаблонизаторов туча кучная, я задумку реализовал именно на ejs.

    P. S. Изучив WebPack, для себя я сделал следующие выводы: webpack не накладывает ограничений, и можно прикрутить любую логику. Но мне нравится подход BEM - полный стек бэм идеально сочетается с моим подходом и представлением о фронтенд-разработке, поэтому не вижу смысла городить BEM на webpack.
    Ответ написан