1

ブートストラップ用の追加の UI コンポーネントを提供するパッケージを作成しています。私は、LESS ブートストラップ ライブラリの (素晴らしい) nemo64:bootstrapパッケージに依存することにしました。

私のパッケージは、いくつかのブートストラップ LESS 変数 (たとえば@brand-success) を必要とする追加の LESS ファイルを提供する必要があります。エンド ユーザーはこれらの変数をカスタマイズできます。

nemo64 :bootstrapパッケージはcustom.bootstrap.import.less、ユーザーが必要な場所に含めるためのブートストラップ変数を含むファイル ( ) を提供します。また、ユーザーがブートストラップをカスタマイズする場所でもあります。したがって、これをパッケージのlessファイルに含めたいのですが、パッケージから、エンドユーザーがこのファイルをどこに置くかわかりません。

指定されたデフォルト パスには、nemo64:bootstrapパッケージ ドキュメント ( /client/lib/custom.bootstrap.import.less) の例があると推測できますが、別のパッケージ作成者が別の選択をした場合、パッケージは互換性がなくなります。

特定のファイル アーキテクチャをエンドユーザーに強制しない方法はありますか?

4

3 に答える 3

1

1 つの解決策は、LESS ファイルをアセットとしてサーバーにエクスポートし、アプリにファイルをコピーするビルド プラグインを用意して、ユーザーが@import必要な場所にコピーできるようにすることです。

これはnemo64:bootstrapと同じ方法で行われますが、これは少しハックで、パッケージを 2 つの異なるパッケージに分割する必要があります。この要点ですべてを説明しました

于 2015-03-21T00:11:03.727 に答える
0

どのように進めるか完全にはわかりません。ただし、変数ファイルと同じ拡張子を持つハンドルを登録することから始めることができます。これが私が意味することです:

var handler = function (compileStep, isLiterate) {
  // This will get the file path from the handler
  var variablesFilePath = compileStep._fullInputPath;
  console.log(variablesFilePath); // print the path to the server when starting
}
// handler may also be a callback
Plugin.registerSourceHandler('bootstrap.import.less', {archMatching: 'web'}, handler);

これにより、プラグイン API を使用できる場所からハンドラーが作成されます。詳細については、Meteor API ドキュメントを参照してください。

これがどのように機能するか教えてください。

于 2015-08-28T02:07:54.413 に答える
0

nemo64::bootstrap などのパッケージをコンパイルして Bootstrap の CSS を理解する限り、metreor のデフォルトの Less コンパイラは、各 less ファイルを単一の css ファイルにコンパイルします。Less ファイルの名前がアンダースコア (_) で始まらない限り、コンパイルされます。

Bootstrap をコンパイルするときは、bootstrap.less ファイルのみをコンパイルする必要があります。他のすべてのファイルはパーシャルのみです。パーシャルはインポートするだけで、CSS ファイルにコンパイルしないでください。Bootstrap のパーシャル ファイル名はアンダースコアで始まらないため、nemo64::bootstrap などのパッケージを使用して Bootstrap をコンパイルし、後で Bootstrap を更新できるようにします。

パッケージには、自分で Bootstrap Less コードを含めることができます。また、Less コンパイラを組み込み、それがメイン ファイルのみをコンパイルすることを確認する必要があります。例は https://atmospherejs.com/bassjobsen/less-pleeeaseにあります。

上記の手順の後、メインの less ファイルには以下を含めることができます。

@import "bootstrap";
@import "overrides";

等々

于 2015-03-19T23:50:12.220 に答える