Разрешение CSS-подпакетов NodeJS?

Я создаю библиотеку CSS, и я хотел бы поддерживать подпакеты так же, как это делает RxJS. Например, с помощью RxJS мы можем импортировать всю кухонную раковину следующим образом (взято с https://www.npmjs.com/package/rxjs):

var Rx = require('rxjs/Rx'); 
Rx.Observable.of(1,2,3); // etc

Или отдельные операторы, как это:

var Observable = require('rxjs/Observable').Observable;
// patch Observable with appropriate methods
require('rxjs/add/observable/of');
require('rxjs/add/operator/map');

Мое первоначальное наблюдение состоит в том, что это может быть так же просто, как просто упаковать модули в подпапки корневого модуля. Например RxJS node_modules папка установки имеет подпапку rxjs/add/observable который содержит все наблюдаемые расширения, такие как zip.js, throw.js..., так далее.

Поэтому, следуя этому шаблону, postcss-import может быть расширен для разрешения импорта в папки подмодулей таким же образом. Например:

  • @import @superflycss/utilities-layout/margins

Будет импортировать node_modules/superflycss/utilities-layout/margins.css и если этого не существует, он будет искать node_modules/superflycss/utilities-layout/margins/index.cssи если этого не существует, он выдаст ошибку.

  • @import @superflycss/utilities-layout/margins/

Будет импортировать node_modules/superflycss/utilities-layout/margins/index.css только.

Модули, которые я выпускаю, имеют упакованную кухонную раковину в каталоге target/main/css/index.css, Это открывает все утилиты или компоненты CSS (в зависимости от типа модуля).

Проблема в том, что, как и в RxJS, это может быть очень тяжелый файл (например, содержать импорт для всех Google шрифтов).

Поэтому я надеюсь, что следуя подходу RxJS, все становится более гибким и стандартизированным, следуя тем же правилам, которые использует алгоритм NodeJS require.resolv(). Мысли?

1 ответ

Решение

PostCSS поддерживает импорт подмодулей так же, как RxJS. Я добавил опрашивающий запрос с тестовыми примерами, который иллюстрирует, как это делается здесь.

Другие вопросы по тегам