web-dev-qa-db-fra.com

nécessite des bibliothèques cdn dans browserify sans les regrouper dans le fichier js final

Si j'ai une bibliothèque extraite de cdn et que je ne voudrais pas qu'elle fasse partie du fichier final js mais que je puisse l'exiger avec browserify, comment pourrais-je le résoudre?

Voici comment je le résous actuellement en utilisant alias et un fichier shim.

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

voici le fichier shim client/shims/jquery.js auquel je renvoie alias jquery pour que je puisse utiliser require('jquery') à la place du chemin complet.

module.exports = $;

Existe-t-il un raccourci dans grunt-browserify pour prendre en charge ce scénario? J'aimerais savoir s'il est possible de le définir dans Gruntfile.js sans créer le fichier shim.

Ajouter external: [ 'jquery' ] semble l’ignorer totalement et ne fonctionne pas.

37
prabir

Avec browserify-shim vous pouvez ajouter ceci dans votre fichier package.json:

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

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

Alors jquery sera disponible dans vos modules via require('jquery')

26
silkAdmin

Si vous chargez jQuery avant le bundle Browserify sur la page, $ sera disponible en tant que global.

0
kpimov