2014-12-30 5 views
5

Ich habe ein Problem mit der Suche nach einer Erklärung für die Verwendung von grunt-browserify. Suchen Sie in den Beispielen Ordner, ich bin auf der Suche nach dem browserify Knoten unter ihrer grundlegenden Beispiel, und ich sehe die folgenden:mit 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']); 
}; 

Was sind „Verkäufer“ und „Client“ und wo werden sie dokumentiert? In der README-Datei erwähnen sie "preBundleCB", "dist" und ich habe einige andere gesehen, und die meisten haben ihre eigenen Datenstrukturen. Werden diese Optionen irgendwo aufgezählt und erklärt?

Antwort

9

Laut the convention of Grunt configuration sind "Vendor" und "Client" targets. Ihre Namen sind nicht durch grunt oder grunt-browserify definiert. Sie können beliebig viele Ziele erstellen und ihnen die Namen geben, die Sie mögen. Jedes Ziel hat eine files Konfiguration, die in den meisten Grunt Aufgaben, wie src und dest, und options Konfiguration, die Plugin-spezifisch ist. "dist" ist ein weiteres Beispiel für Ziele und "preBundleCB" ist eine Eigenschaft der Optionen grunt-browserify.

Sie können die Ziele mit grunt browserify:vendor und grunt browserify:client einzeln aufrufen. Und grunt browserify ruft alle Ziele von browserify Task auf, die in diesem Beispiel "Vendor" und "Client" sind.

Jedes Ziel von grunt-browserify erstellt eine gebündelte Skriptdatei. In diesem Beispiel erstellt "vendor" target vendor.js, das jquery, moment.js mit den Namen momentWrapper und events mit dem Namen evt enthält. Das Ziel "Client" erstellt app.js, das client/**/*.js und ihre Abhängigkeiten enthält, mit Ausnahme von jquery und momentWrapper.

+0

Sehr hilfreich, danke! Eine Sache, die ich diesem Protokoll hinzufügen wollte, ist, dass die Datei, die mit dem browserify-Knoten in grunt.initConfig ausgeführt wird, in node_modules.grunt-browserify.tasks.browserify zu finden ist. Neu zu grunzen und ich habe die Beziehung nicht verstanden. – Shane