1

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

4

1 に答える 1

0

PostCSS は、RxJS と同じ方法でサブモジュールのインポートをサポートしています。ここでどのように行われるかを示すテスト ケースを含むプル リクエストを追加しました。

于 2018-01-26T21:26:40.273 に答える