web-dev-qa-db-ja.com

browserifyプログラマティックAPIでライブラリを無視する方法

以下のコードが_bundler.js_にあり、_entry.js_をトレースするとvar B = require('backbone');につながると仮定します(バックボーンは_package.json_で宣言されているようにインストールされた依存関係です)。

_var browserify = require('browserify');
var bundle = new browserify();
bundle.add('entry.js');
bundle.bundle({
  noParse: ['backbone']
});
_

このバンドラーを実行すると、元のbackboneソースを含むストリームが生成されます。 browserifyの コマンドラインオプション に基づいて、バックボーンを完全にスキップすることを期待していました。ソースを読んで、私はおそらく次のことがうまくいくと思っていました:

_var browserify = require('browserify');
var bundle = new browserify({
    noParse: ['backbone']
});
bundle.add('entry.js');
bundle.bundle();
_

backboneソースはまだストリーム出力に表示されますが。

このAPIアプリケーションの構成オプションとして_--noparse=FILE_を使用することは可能ですか?

21
kurttheviking

ご覧のとおり、 ここから コマンドラインで提供される_--noparse_オプションがbrowserify({ })呼び出しに渡されます。

したがって、browserifyにjqueryとthree.jsを解析しないように指示するには、jqueryファイルとthree.jsファイルへのフルパスを渡す必要があります。

例:

_browserify({
  noParse: [
   require.resolve('./vendor/jquery'),
   require.resolve('./vendor/three')
  ]
})
.require(require.resolve('./entry.js'), { entry: true })
.bundle();
_
10
Thorsten Lorenz
var browserify = require("browserify")

browserify({entries: ['./src/client/app.js']})
.ignore('jquery')

これにより、browserifyはjqueryを無視するようになり、jqueryをindex.htmlに直接追加できます。

9
iLemming