3

スプロケットあり:

//= require 

... in application.js<script src=...>は、HTML の先頭にタグを追加しているようです。ただし、次の場合browserify-rails:

window.mymodule = require('mymodule'); // mymodule is a dependency in package.json 

<script>のタグが表示されませんmymodule。ただし、内部で定義されたコードを使用できますmymodule。ここでbrowserifyは何をしていますか?

4

1 に答える 1

2

つまり、Browserify は各モジュールを関数内にラップし、モジュールに独自のスコープを与えます。これにより、エクスポートしないものはモジュールにプライベートに保持されます。これらの関数はそれぞれマップに格納されるため、後で検索できますrequire

これは、すべてがどのように機能するかを高レベルで説明する非常に優れた記事です: http://benclinkinbeard.com/posts/how-browserify-works/

Sprockets は、グローバル スコープのマニフェストにすべてを含めるだけです。開発時には、各スクリプトのファイルが含まれています。本番環境では、スクリプトはすべて連結および縮小されていますが、すべてグローバルです。

于 2015-10-29T14:17:30.490 に答える