web-dev-qa-db-ja.com

最終的なjsファイルにバンドルせずにbrowserifyでcdnライブラリを必要とする

Cdnからプルダウンされているライブラリがあり、それが最終的なjsファイルの一部になりたくないが、browserifyを使用してそれを要求できるようにしたい場合は、どうすれば解決できますか?

これが現在aliasとshimファイルを使用して解決する方法です。

_browserify: {
    options: {
        debug: true,
        transform: [ 'reactify' ],
        alias: [
            'client/shims/jquery.js:jquery'
        ]
    },
    app: {
        src:  'client/app.js',
        dest: 'public/app.js'
    }
}
_

ここに、shimファイル_client/shims/jquery.js_があります。これは、jqueryにエイリアスを付けているので、フルパスの代わりにrequire('jquery')を使用できます。

_module.exports = $;
_

このシナリオをサポートするためのgrunt-browserifyのショートカットはありますか?シムファイルを作成せずにGruntfile.jsで定義できるかどうか知りたいのですが。

_external: [ 'jquery' ]_を追加しても完全に無視されるようで、機能しません。

37
prabir

browserify-shim を使用すると、package.jsonファイルにこれを追加できます。

_  "browserify": {
    "transform": [
      "browserify-shim"
    ]
  },

  "browserify-shim": {
    "jquery": "global:$"
  }
_

次に、jqueryがrequire('jquery')を介してモジュールで使用可能になります

27
silkAdmin