package.jsonファイルがありますが、npmは対応する「選択された」パッケージを返しません。
現在、package.jsonファイルは、主に開発者向けにChosenの開発要件をインストールすることを目的としています。
これはサーバー側ではなくブラウザーでのみ機能するライブラリーなので、npmで使用するのは理にかなっていますか? (これは本当の質問です。私はnode.js開発者ではなく、PHPの人なので、npmの規則はわかりません)
主な理由は、 Browserifyを使用して、JSでスクリプトタグをどこにでもドロップする代わりにvar Chosen = require('Chosen');
を実行できるようにすることです。 サーバーサイドJSはすでにrequire
形式を使用しており、browserifyは単にrequiresを解析し(node.jsが取得した優れたモジュール定義をシミュレートするためですが、フロントエンド用)、それを大きな最終的なbuild.jsに変換します( index.htmlに提供するすべての依存関係バンドル)ファイル。
この問題の+ 1—私はbrowserifyを使用し、アプリで選択したものを使用していますが、現在はvendor
ディレクトリに配置する必要があります。これは本当に面倒です。
これにも+1。 Browserifyを使用すると、NPMを使用することは非常に理にかなっています。
私からも+1:)browserifyも使用
+1
+1
+1
+1
このプラグインが必要な場合は、 $
とjQuery
をグローバルスコープに実行でき、後でchosen = require(../path/chosen.min.js)
例:
var $ = require('jquery');
window.$ = $;
window.jQuery = $;
var chosen = require(./chosen.jquery.min.js)
コードで使用できます$('select').chosen();
ソース: http :
+1
+1
browserifyサポートの+1をお願いします
ここでの修正は非常に簡単だと思います。
npm
公開します選ばれたチームがそのようなPRに興味を持っているなら、私に知らせてください、そして私は何かをまとめます。 ビルドされたファイルはBowerに置くこともでき、Chosenを使用している開発者に問題はないはずです。
@jmeas
ビルドされたファイルをリポジトリに追加します
これは起こりません。 以前はこれを行っていましたが、チームにとっては悪夢でした。 コンパイルされたJS + CSSはリポジトリに追加されません。これは、課題追跡システムで何度も議論されています。
コンパイル済みのバージョンは、リリースページから提供されバウアーの説明を参照してください。
選択したパッケージマネージャーがZIPをサポートしていない場合、またはGitHubリリースAPIを使用
ユーザーをブラウザ化してください。私が知っている2つの選択肢があります。 最初のものは上で説明されていますが、もう一度要約します。
解決策1:バウアーとwindow
READMEの指示に従ってください。 残念ながら、私が知る限り、 npm
使用することはできないので、プロジェクトにbower
を設定し、zipをインストールします。 次のものを使用して、コードにモジュールを追加します。
var $ = require('jquery');
// Chosen requires this :(
window.jQuery = $;
require('path/to/bower_components/chosen_v1.3.0/chosen.jquery');
そしてそれはうまくいきます! jQueryは、ご想像のとおり、永続的に変更されるため、アプリ内の他の場所で選択する必要はありません。
ブラウザのグローバルにアクセスしようとした場合にリンターがエラーをスローするようにして、コード内の他の場所でこのwindow.jQuery
参照を開始しないようにすることをお勧めします。
バウアーと窓に興味がない? 私はあなたを感じます。 2番目のオプションは...
解決策2:自分でラップする
私のアプリには、モジュールローダーを処理するためにパッケージ化されていない少数のライブラリ用のvendor
ディレクトリがよくあります。 選択した周りにこのUMDラッパーを追加すると、通常どおりにそれを要求できます。 このラッパーはAMDユーザーにも機能します。
なぜbrowserify-shimを使用しないのですか?
これは間違いなくオプションです。 私のアプリのテストはNode + JSDomで実行されるため、ライブラリをシミングしたりエイリアスを作成したりせずに動作する必要があります。
週の終わりまでに、UMDでラップされたnpm
とbower
にChosenのビルドを作成したいと思っています。そうすれば、将来、問題が発生してもそこからインストールできます。 あなたが私に思い出させれば私はそれを最新の状態に保つでしょう、それであなたが将来の読者であり、私のフォークが古くなっているなら、ただ問題を開いてください、そして私はリリースを切ることができます。
:+1:ネイティブバウアーコンポーネント用。 scss
ファイルを直接インポートできるようにしたい。
選択したパッケージをnpmに追加するための+1。
選択したパッケージをnpmに追加するための+9001。
Chosenでの開発は(少なくとも今のところ)遅い段階にあるようで、メンテナはChosenが動作する環境の更新に興味を持っていないようです。
前進するための最良の方法はおそらくそうでしょう。 このプロジェクトをフォークしてnpmサポートを追加するだけです(必要に応じて、UMDサポートも!)。 npm / Bowerで新しいリリースを公開し(おそらくmodern-chosen
?)、PRを開いて変更をアップストリームすることができます。
彼らがそれをマージするなら、素晴らしい–あなたはあなたのモジュールを非推奨にすることができます。 そうでなければ、人々は代わりにあなたのフォークを使い始めるでしょう。
(私は特定の人ではなく、「誰でも」という意味で「あなた」を使用しています:P)
Bowerが選択したフォークにパッケージ定義を追加することの難しさは何ですか? それは怠惰ですか、それとも無能ですか? 非常にリースでは、ノードユーザーを完全に収容するのではなく、ある程度満足させることができます。
Bowerが選択したフォークにパッケージ定義を追加することの難しさは何ですか? それは怠惰ですか、それとも無能ですか? 非常にリースでは、ノードユーザーを完全に収容するのではなく、ある程度満足させることができます。
そのような思慮深いコメント..それはオープンソースであり、誰もが自由な時間に貢献していることを忘れないでください。 それに加えて、すべての追加機能を維持する必要があり、これには時間がかかります。 しかし、確かに、 bower-chosen
リポジトリがあるので、npmパッケージは遠くないはずです。
@pfiller多分bower-chosen
名前をchosen-packaged
(または特定のマネージャーに関係のない何か)に変更し、リポジトリにpackage.json
を含める必要があります。
npmパッケージを処理するPR(#2550)をセットアップしました。そのPRに添付されているパッケージの例を確認してください。これは、このパッケージがどのように表示されるかを示しています。 ありがとう!
chosen-js
としてNPMに追加されました@koenpuntありがとう! 問題は、パッケージにビルドファイルが含まれているため、rawscssをインポートできないことです。
関連:#2347
最も参考になるコメント
そのような思慮深いコメント..それはオープンソースであり、誰もが自由な時間に貢献していることを忘れないでください。 それに加えて、すべての追加機能を維持する必要があり、これには時間がかかります。 しかし、確かに、
bower-chosen
リポジトリがあるので、npmパッケージは遠くないはずです。@pfiller多分
bower-chosen
名前をchosen-packaged
(または特定のマネージャーに関係のない何か)に変更し、リポジトリにpackage.json
を含める必要があります。