問題タブ [browserify]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - browserify はどのように Node.js モジュールをブラウザーで動作させますか?
背後にある作業を本当に理解できませんbrowserify
。純粋な JavaScript モジュールを使用する場合、多くの依存関係がある場合でも、ブラウザ コードに変換するのは「簡単」に思えます。
しかし、browserify
より多くのことを行います:
IO を行わない多くの npm モジュールは、ブラウザ化された後に機能します。他の人はもっと手間がかかります。
多くのノード組み込みモジュールは、ブラウザーで動作するようにラップされていますが、
require()
それらの機能を明示的に使用するか使用する場合のみです。これらのモジュールのいずれかを require() すると、ブラウザー固有の shim が取得されます。
そしてまた:
- process.nextTick()、__dirname、および __filename node-isms が機能します
- ノード コア ライブラリのイベント、ストリーム、パス、URL、アサート、バッファ、ユーティリティ、クエリ文字列、http、vm、および暗号のブラウザ バージョンを require() 時に取得します。
それで... process.nextTick()
、__dirname
ブラウザの中で...でもhttp
?これは私には意味がありません...__dirname
ブラウザ内でどのように動作するはずですか?
browserify - メソッド内の require 呼び出しをブラウザー化して解決できます
私は持っている
プラグインシステムを備えたパッケージ。各プラグインはパッケージです。メソッドを alling してプラグインをロードし、プラグuse
インのエクスポートを引数として渡すことができます。
私が欲しい
の引数がuse
文字列のuse
場合、モジュールが必要です。
質問
browserify はこの使用法を解決できますrequire
か?
browserifyreqire
が最上位レベルの呼び出しを検索するだけなのか、それとも実際にコードを評価するのかはわかりません。
backbone.js - Backbone.Marionette - Grunt Browserify - "require が定義されていません"
私はgrunt-browserifyを使用しており、特に 2 つの問題に直面しています。タスクは、次の構成オプションを使用して正常に実行されています。この変数jsFilesToConcat
は、Backbone.js + Marionette.js アプリケーションのすべての JavaScript ファイル、メイン アプリケーション定義、フロントエンド ユーティリティ アセット (Bootstrap プラグインなど)、およびプロジェクトに関連付けられたすべての JS を表します。これは間違ったアプローチですか?250k の JS アプリケーション全体 (およびそのすべての依存関係) を一度にロードすることを考えました。
これは私にとって新しい領域であるという免責事項を提供したいので、意図したユースケースはプラグインで既に利用可能なオプションで利用できると思いますが、2 つのエラーで混乱しています:
1) Backbone not defined
- これは、スクリプトが実際にロードされていることを意味しますが、Chrome Dev Tools でコール スタックを調べると、匿名の自己呼び出し関数のみが表示されます。そのため、Backbone オブジェクトを Marionette に渡してロード時に拡張する方法がよくわかりません。
2) require is not defined
- 宣言している行にエラーがありますvar SampleApp = require('SampleApp')
。require
関数を公開するために、grunt 構成または node.js server.js 構成内で何か特別なことをする必要がありますか?
3) javascript はそれ自体で非同期に実行されていますか? browserify のこの部分は、私が適切に処理していない意図した動作ですか? 名前空間を保護するために多くの JS ユーティリティをグローバルラッパーでラップしているため、一部の機能が利用できない理由だと思いますが、それがなぜ影響するのかはわかりませんrequire
。
そして、index.html
私の単一ページの Marionette アプリで、私は持っています。
node.js - クライアント側の展開のための node_modules の圧縮
Node.js を使用して JavaScript でクライアント側アプリケーションを実装しています。多くのマシンにソフトウェアを展開するので、配布するパッケージのサイズを最小限に抑えたいと考えています。特に、node_modules から不要なファイルを削除したいと考えています。
手始めに、これは依存関係ツリーの重複排除とプルーニングを意味npm
します。package.json
しかし、すべてのファイルと (特に) 展開に必要のないその他のファイルも削除したいと思います。私が使用しているパッケージの多くには、大量のテスト、複数のバージョンのファイル (圧縮、ブラウザ化など) などが含まれています。実行中のアプリで実際に使用される JavaScript ファイルだけが必要です。それ以外の場合は、実際には使用されていない 100 KB のファイルをいくつか配布します。
私は知ってnode-browserify
いますが、私のアプリはブラウザではなくCommonJS環境で実行されるので、モジュールを分けてrequire
.
required
を使用して依存関係ツリーをたどり、実行時に必要な JavaScript ファイルを取り出し、それらをツリー構造に書き込んでロードできるようにする Grunt プラグインを作成することを考えていrequire
ます (モジュールを直接ロードするだけで、package.json
. しかし、私が取り組む前に、誰も私のためにこれを行っていないことを確認したいと思います.
node.js - browserifyでテキストファイルを「要求」する方法は?
browserify (browserify-middleware を使用) を使用していますが、次のような単純なテキスト ファイルを要求するにはどうすればよいですか。
browserifyのstringifyプラグインを確認しましたが、ドキュメントのコードが browserify V2 で動作しません
javascript - 依存関係が一緒にバンドルされることを期待するのではなく、グローバルスコープのrequireから依存関係をロードするBrowserify
ライブラリAとライブラリB、Aに応じてBを開発しています.browserifyを使用して、それらを個別にバンドルしたいので、ブラウザで次のことができます。
A のみに依存するライブラリ C も開発しているため、それらを個別にバンドルしたいと思います。A が B に含まれている場合、C からはアクセスできません。A が B と C にある場合、重複しました。
そこで、ライブラリ A のブラウザ化から始めます。
これはまったく問題なく動作します。私は A を配布でき、他の人はそれを使用してアプリケーションを開発できます。
次に、ライブラリ B を参照します。
しかし、今では A が 2 回あります。A はブラウザーに個別に読み込まれ、もう一度 B と一緒にパッケージ化されています。したがって、browserify の -i オプションを使用して、含まれないようにします。
しかし、B が A を要求すると、ライブラリの代わりに空のオブジェクト {} が取得されます。ただし、ライブラリ A は、require("A") を実行することにより、グローバル スコープから引き続き利用できます。
-x を使用して外部化を試みましたが、グローバル スコープからライブラリを要求できなくなりました。
B の生成された出力をハッキングし、モジュールの解決を強制して以前の要求から A を取得することで、必要な動作を得ることができました。これにより、簡単な解決策があると思いますが、見つけることができません。
私はbrowserify 2.18.1を使用しています
backbone.js - CommonJS モジュールとしてのバックボーン ビュー
Backbone アプリケーション内で CommonJS モジュールを使用して頭を悩ませようとしているので、スケルトンの Backbone View が で定義されてい/views/categories/edit.js
ます。
これを CommonJS モジュールに変換して Browserify で使用する方法を誰かが教えてくれたら、とてもありがたいですし、アプリケーションの残りの部分をモジュール化する方法を理解するのに本当に役立ちます! ありがとう
backbone.js - CommonJS と Browserify を使用したバックボーン アプリ
既存のアプリを CommonJS モジュールの使用に移行し、Browserify を使用bundle
してモジュールを 1 つのファイルにまとめることを考えています。
私はモジュールを書くことに頭を悩ませていますが、飛び込んで特定のビットを書き直し始める前に少し懐疑的であることの1つは、バックボーン、アンダースコア、 jQuery および各ファイル内のヘルパー ファイル。
各ファイルの先頭は、しばらくすると少し面倒になります。
完全な CommonJS、Browserify n00b であるため、どこかに非常に明白な何かが欠けているのではないかと思っています。
javascript - Zepto を Browserify と互換性を持たせるにはどうすればよいですか?
Zepto にいくつかの変更を加えました。Browserify で使用できることを願っています。
しかし、エラーが発生しました:
解決策はありますか?
coffeescript - coffeescript と livescript ファイルの混合をブラウザ化する
メインのコーヒー ファイルと、他のコーヒー ファイルとライブスクリプト ファイルの組み合わせがあります。
走れる
でも走ろうとして
エラーが発生します:
私が見る唯一の回避策は、最初に ls ファイルを js にコンパイルすることです。ls ファイルと coffee ファイルを混在させる、より簡単で直接的な方法はありますか?