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() アルゴリズムが使用するのと同じルールに従うことで、全体がより柔軟になり、標準化されることを願っています。考え?