2014-12-30 12 views
5

Sto riscontrando qualche problema nel trovare una spiegazione su come utilizzare grunt-browserify. Guardando nella loro cartella di esempi, sto cercando sotto il nodo browserify sotto il loro esempio di base e vedo il seguente:utilizzando grunt-browserify in Gruntfile.js

module.exports = function (grunt) { 
    grunt.initConfig({ 
    browserify: { 
     vendor: { 
     src: [], 
     dest: 'public/vendor.js', 
     options: { 
      require: ['jquery'], 
      alias: [ 
      './lib/moments.js:momentWrapper', //can alias file names 
      'events:evt' //can alias modules 
      ] 
     } 
     }, 
     client: { 
     src: ['client/**/*.js'], 
     dest: 'public/app.js', 
     options: { 
      external: ['jquery', 'momentWrapper'], 
     } 
     } 
    }, 
    concat: { 
     'public/main.js': ['public/vendor.js', 'public/app.js'] 
    } 
    }); 
    grunt.loadTasks('../../tasks'); 
    grunt.loadNpmTasks('grunt-contrib-concat'); 
    grunt.registerTask('default', ['browserify', 'concat']); 
}; 

Che "venditore" e "client" e dove sono documentati? Nel file README, menzionano "preBundleCB", "dist" e ne ho visti parecchi altri, e la maggior parte ha le proprie strutture dati. Queste opzioni sono enumerate e spiegate ovunque?

risposta

9

In base a the convention of Grunt configuration, "fornitore" e "cliente" sono targets. I loro nomi non sono definiti da grunt o grunt-browserify. Puoi creare tutti gli obiettivi che vuoi e dare loro i nomi che ti piacciono. Ogni destinazione ha la configurazione files, che è comune nella maggior parte delle attività di Grunt, come ad esempio src e dest e nella configurazione options, che è specifica del plugin. "dist" è un altro esempio di target e "preBundleCB" è una proprietà delle opzioni di grunt-browserify.

È possibile richiamare individualmente gli obiettivi con grunt browserify:vendor e grunt browserify:client. E grunt browserify richiama tutti i target dell'attività browserify, che sono "fornitore" e "client" in questo esempio.

Ogni destinazione di grunt-browserify crea un file di script in bundle. In questo esempio, l'obiettivo "fornitore" crea vendor.js che contiene jquery, moment.js denominato momentWrapper e events denominato evt. L'obiettivo "client" crea app.js che contiene client/**/*.js e le loro dipendenze escluso jquery e momentWrapper.

+0

Molto utile, grazie! Una cosa che volevo aggiungere a questo registro, il file in esecuzione sul nodo browserify in grunt.initConfig può essere trovata in node_modules.grunt-browserify.tasks.browserify. Nuovo a grugnire e non ho capito la relazione. – Shane