This commit is contained in:
Valentin Silytuin 2022-08-29 00:09:58 +04:00
parent d078fe51b0
commit dd3ed64c66
3 changed files with 9 additions and 3 deletions

View File

@ -65,7 +65,8 @@ const nunjucksTemplate = `
## Опции ## Опции
- `templatesFolder` - обязательный параметр, путь до папки с файлами шаблонов. - `templatesFolder` - обязательный параметр, путь до папки с файлами шаблонов
- `varNames` - Массив, обязательный параметр. Имена переменных для преобразования кода шаблонизатора. - `globals` - массив, необязательный параметр. Глобальные переменные для Nunjucks (например, `[{name: "message", value: "Hello, world!"}]`)
- `varNames` - массив, обязательный параметр. Имена переменных для преобразования кода шаблонизатора
**Важно:** Параметр `cacheDirectory` в опциях babel-loader должен быть отключён. **Важно:** Параметр `cacheDirectory` в опциях babel-loader должен быть отключён.

View File

@ -12,6 +12,11 @@ export default ({types: t}) => {
const templatesFolder = state.opts.templatesFolder; const templatesFolder = state.opts.templatesFolder;
const value = path.parentPath.get('init').node.quasis[0].value.raw; const value = path.parentPath.get('init').node.quasis[0].value.raw;
const env = new nunjucks.Environment(new nunjucks.FileSystemLoader(templatesFolder)); const env = new nunjucks.Environment(new nunjucks.FileSystemLoader(templatesFolder));
if (state.opts.globals) {
state.opts.globals.forEach(({name, value}) => {
env.addGlobal(name, value);
});
}
const render = env.renderString(value); const render = env.renderString(value);
path.parentPath.get('init').node.quasis = [t.templateElement({cooked: render, raw: render})]; path.parentPath.get('init').node.quasis = [t.templateElement({cooked: render, raw: render})];
break; break;

View File

@ -1,6 +1,6 @@
{ {
"name": "@advdominion/babel-plugin-nunjucks", "name": "@advdominion/babel-plugin-nunjucks",
"version": "2.0.1", "version": "2.1.0",
"type": "module", "type": "module",
"engines": { "engines": {
"node": "^16.0.0" "node": "^16.0.0"