From 5c773895cb2ad08545dffd68e4ceb387febcf308 Mon Sep 17 00:00:00 2001 From: Valentin Silyutin Date: Tue, 8 Sep 2026 13:24:44 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D1=8B=20ba?= =?UTF-8?q?bel-plugin-nunjucks=20=D0=B8=20lightningcss-loader?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/babel-plugin-nunjucks/README.md | 70 --------------------- packages/babel-plugin-nunjucks/index.js | 25 -------- packages/babel-plugin-nunjucks/package.json | 18 ------ packages/lightningcss-loader/README.md | 53 ---------------- packages/lightningcss-loader/index.js | 22 ------- packages/lightningcss-loader/package.json | 14 ----- 6 files changed, 202 deletions(-) delete mode 100644 packages/babel-plugin-nunjucks/README.md delete mode 100644 packages/babel-plugin-nunjucks/index.js delete mode 100644 packages/babel-plugin-nunjucks/package.json delete mode 100644 packages/lightningcss-loader/README.md delete mode 100644 packages/lightningcss-loader/index.js delete mode 100644 packages/lightningcss-loader/package.json diff --git a/packages/babel-plugin-nunjucks/README.md b/packages/babel-plugin-nunjucks/README.md deleted file mode 100644 index f683fea..0000000 --- a/packages/babel-plugin-nunjucks/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# babel-plugin-nunjucks - -Плагин для [babel-loader](https://github.com/babel/babel-loader), позволяющий использовать шаблонизатор [Nunjucks](https://mozilla.github.io/nunjucks/) внутри JS-файлов. - -## Установка - -```bash -yarn add -D @advdominion/babel-plugin-nunjucks -``` - -## Использование - -Используются [Tagged templates](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates) с тегом `njk`: - -```js -njk` - {% from "./item.njk" import item as item %} - -
- {% for n in range(0, 10) %} - {{item()}} - {% endfor %} -
-`; -``` - -Пример конфигурации Webpack: - -```js -[ - { - test: /\.js$/, - exclude: [/mocks\.js$/], - use: [ - { - loader: 'babel-loader', - options: { - cacheDirectory: true, - }, - }, - ], - }, - { - test: /mocks\.js$/, - use: [ - { - loader: 'babel-loader', - options: { - compact: false, - plugins: [ - [ - '@advdominion/babel-plugin-nunjucks', - { - templatesFolder: 'src/templates/', - }, - ], - ], - }, - }, - ], - }, -]; -``` - -## Опции - -- `templatesFolder` - строка, обязательный параметр. Путь до папки с файлами шаблонов -- `globals` - массив, необязательный параметр. Глобальные переменные для Nunjucks (например, `[{name: "message", value: "Hello, world!"}]`) - -**Важно:** Параметр `cacheDirectory` в опциях babel-loader должен быть отключён. diff --git a/packages/babel-plugin-nunjucks/index.js b/packages/babel-plugin-nunjucks/index.js deleted file mode 100644 index a49c9b3..0000000 --- a/packages/babel-plugin-nunjucks/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import nunjucks from 'nunjucks'; - -const babelPluginNunjucks = ({ types: t }) => { - return { - pre(state) { - const options = state.opts.plugins[0].options; - this.njkenv = new nunjucks.Environment(new nunjucks.FileSystemLoader(options.templatesFolder)); - if (options.globals) { - for (const { name, value } of options.globals) { - this.njkenv.addGlobal(name, value); - } - } - }, - visitor: { - TaggedTemplateExpression(path) { - if (path.get('tag').isIdentifier({ name: 'njk' })) { - const render = this.njkenv.renderString(path.node.quasi.quasis[0].value.raw); - path.replaceWith(t.stringLiteral(render)); - } - }, - }, - }; -}; - -export default babelPluginNunjucks; diff --git a/packages/babel-plugin-nunjucks/package.json b/packages/babel-plugin-nunjucks/package.json deleted file mode 100644 index a0d47cd..0000000 --- a/packages/babel-plugin-nunjucks/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@advdominion/babel-plugin-nunjucks", - "version": "4.0.0", - "type": "module", - "main": "index.js", - "repository": { - "type": "git", - "url": "https://gitea.optiweb.ru/public/frontend.git" - }, - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "peerDependencies": { - "@babel/core": "^8.0.0", - "nunjucks": "^3.0.0" - } -} diff --git a/packages/lightningcss-loader/README.md b/packages/lightningcss-loader/README.md deleted file mode 100644 index 4232dce..0000000 --- a/packages/lightningcss-loader/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# lightningcss-loader - -[Lightning CSS](https://lightningcss.dev) loader for [Webpack](https://webpack.js.org) - -## Usage - -```js -import { transform } from 'lightningcss'; - -return { - ..., - rules: [ - { - test: /\.css$/, - use: [ - { - loader: '@advdominion/lightningcss-loader', - options: { - implementation: transform, - }, - }, - ], - }, - ], -}; -``` - -### Passing options to Lightning CSS - -```js -import { transform } from 'lightningcss'; - -return { - ..., - rules: [ - { - test: /\.css$/, - use: [ - { - loader: '@advdominion/lightningcss-loader', - options: { - implementation: transform, - drafts: { - customMedia: true, - }, - minify: false, - }, - }, - ], - }, - ], -}; -``` diff --git a/packages/lightningcss-loader/index.js b/packages/lightningcss-loader/index.js deleted file mode 100644 index 945bc73..0000000 --- a/packages/lightningcss-loader/index.js +++ /dev/null @@ -1,22 +0,0 @@ -const lightningcssLoader = function (source, sourceMap) { - const { implementation, ...options } = this.getOptions(); - const callback = this.async(); - - if (typeof implementation !== 'function') { - throw new TypeError( - `[lightningcss-loader]: The "implementation" option is required and must provide "transform" function of the LightningCSS`, - ); - } - - const { code, map } = implementation({ - filename: this.resourcePath, - code: Buffer.from(source), - sourceMap: this.sourceMap, - inputSourceMap: this.sourceMap && sourceMap ? JSON.stringify(sourceMap) : undefined, - ...options, - }); - - callback(undefined, code.toString(), map && JSON.parse(map.toString())); -}; - -export default lightningcssLoader; diff --git a/packages/lightningcss-loader/package.json b/packages/lightningcss-loader/package.json deleted file mode 100644 index a35ae0e..0000000 --- a/packages/lightningcss-loader/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "@advdominion/lightningcss-loader", - "version": "1.0.2", - "type": "module", - "main": "index.js", - "repository": { - "type": "git", - "url": "https://gitea.optiweb.ru/public/frontend.git" - }, - "license": "MIT", - "publishConfig": { - "access": "public" - } -}