私は私のワードプレステーマでbrowserifyを使用しています。私が問題になっているのは、「WordPressの方法」(つまりwp_enqueue_script('jquery')
)を含めると、window.jQuery
に依存するすべてのWordPressプラグインが定義されている(そして<head>
に含まれています)ということです。Browserify and global jQuery
私はbrowserifyを無視することができました。jQueryを無視するだけでは、私のGulpfile.jsにbrowserify(conf).ignore('jquery')
を設定するだけで済みますが、これはスクリプトがjQueryに "browserify way"を失敗させようとしています。
WPプラグインが機能するように、グローバルなjQueryオブジェクト(独自の<script>
要素に含まれています)を持っていても、var $ = require('jquery')
のコードを実行するにはどうすればよいですか?出来ますか?
更新:私は多少近づいたと思う。私は現在、<head>
にjQueryを「通常」含めています。私はignore('jquery')
私の束縛されたファイルで終わるのを避けるために私のbrowserify呼び出しに設定しました、私はbrowserify-shimを使用しています(ここで私は少し失われています)(私は思う?)あなたが行うときにそれを作るrequire('jquery')
代わりにグローバルwindow.jQuery
オブジェクトを使用しますか?
これは私がしなければ、自分自身のコードで動作するようです:
var foo = require('jquery');
console.dir(foo);
私はjQueryオブジェクトを得るか、まだ私のバンドルされたファイルはわずか数キロバイトの示すjQueryのそこにバンドルないです。 しかし、私はnpm install jquery-cycle
と私のスクリプトから、私は$が未定義のjqueryサイクルコードからJSエラーを取得する必要があるとき。奇妙な部分は、サイクルスクリプトは、ちょうど私は、var $ = require('jquery')
ですが、そこに$
はではありませんは、すべての代わりに、空のオブジェクトです。どうしてこれなの?
更新2:何らかの理由で、サイクルプラグインのrequire()
を変更して、正確なJSファイルを必要とするようにしました。 IE require('jquery-cycle')
(基本的には$ is undefined
というエラーが投げられました)をrequire('../node_modules/jquery-cycle/index.js')
に変更しました。
私はもちろん、物事を「普通の」方法で要求することを非常に好むでしょう。それがなぜうまくいかないのですか?
更新3:多くの掘り下げの後、最終的に、global: true
をtransform()
コールに設定する必要があることが判明しました。依存関係の依存性がshimmed jQueryを使用するようになりました。私は最終的にここに、この解決策が見つかりました:Shimming dependencies of dependencies with browserify-shim
をあなたはWordpressのと同じホスト上でがぶ飲みをcomplingていますか? – Undefitied
それはあなたが意味するものなら、私は地元のすべてのことをやっていますか? – powerbuoy
gulpを実行してフロントエンドファイルをコンパイルし、httpサーバをWordpress用にコンパイルするために、ローカルの別のホストでも使用できます。 – Undefitied