webpack-yate-utils

1.2.2 • Public • Published

Webpack Yate Utils

Набор сборочных утилит, для работы с шаблонизатором yate

YateLoader

Собирает переданные в него yate модули. Сам резолвит все импорты.

Если где-то в сделали:

// in modulename2
import modulename1

то не забудьте настроить сборку для modulename1, иначе modulename2 никогда не соберется и не выкинет об этом ошибку.

Звучит страшно, но на самом деле все логично.

Пример подключения в конфиге:

{
    test: /\.yate$/,
    use: [
        {
            loader: 'webpack-yate-utils/yate-loader',
        }
    ],
    ...
},

YateLoaderPlugin

Позволяет правильно перекомпилировать yate файлы в watch режиме.

Пример подключения:

const yate = require('webpack-yate-utils');
...
 
{
    plugins: [
        new yate.YateLoaderPlugin({
            dumpExports: true
        }),
        ...
    ]
}

Параметры

  • context - работает по принципу настройки context в webpack. Может быть использован в дополнительных плагинах. По умолчанию берется из конфига вебпака.
  • publicPath - работает по принципу настройки publicPath в webpack. Может быть использован в дополнительных плагинах. По умолчанию берется из конфига вебпака.
  • dumpExports - указывает, сохранять ли внешние переменные модуля в файл <module>.yate.obj. По умолчанию false.

События

На этапе компиляции добавлены кастомные события для yate.
Все события начинаются с префиксов yate-module и yate-module-before.

parse, include, import, itemize, parents, scopes, declarations, actions, list, validate, types, defs, export, prepare, transform, result

Подробнее

Пример
compiler.plugin('compilation', (compilation) => {
    compilation.plugin('yate-module-before-export', (module, callback) => {
       ...
       callback(error);
    });
 
    compilation.plugin('yate-module-result', (module, callback) => {
       ...
       callback(error);
    });
});

YateFreezeLinksPlugin

Альтернатива для borschik-link.

Ищет в yate шаблонах использование конструкции

frozen-link('./filename.ext')

и добавляет этот файл в дерево сборки webpack. Саму конструкцию заменяет на результат добавления.

Нужно как минимум прописать file-loader для png, чтобы можно было загружать png через frozen-link.

Пример подключения:

const yate = require('webpack-yate-utils');
...
 
{
    module: {
        rules: [
            {
                test: /\.yate$/,
                use: [
                    {
                        loader: 'webpack-yate-utils/yate-loader',
                    }
                ]
            },
            {
                test: /\.(svg|jpg|png|gif)/,
                use: [
                    {
                        loader: 'file-loader',
                        options: {
                            name: '[hash]-[name].[ext]'
                        }
                    }
                ]
            },
        ]
    },
    plugins: [
        new yate.YateLoaderPlugin(),
        new yate.YateFreezeLinksPlugin({
            pathResolveMode: 'module'
        })
        ...
    ]
}

Параметры

  • pathResolveMode - способ разрешения ссылок на файлы.
    • module - относительно корня текущего yate модуля.
    • file - относительно файла в котором вызван frozen-link.
    • root (default) - относительно YateLoaderPlugin.base, который по умолчанию равен webpack.context.

Readme

Keywords

none

Package Sidebar

Install

npm i webpack-yate-utils

Weekly Downloads

10

Version

1.2.2

License

MIT

Unpacked Size

27.2 kB

Total Files

14

Last publish

Collaborators

  • 3y3