webpack-yate-utils
v1.2.2
Published
yate teplater utils for webpack build
Downloads
2
Readme
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.