在Gruntfile.js中使用grunt-browserify

我有一些麻烦find如何使用grunt-browserify的解释。 看他们的示例文件夹,我正在查看下基本示例下的browserify节点,我看到以下内容:

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']); }; 

什么是“供应商”和“客户”,他们在哪里logging? 在自述文件中,他们提到“preBundleCB”,“dist”,我见过不less其他人,而且大多数都有自己的数据结构。 这些选项是否在任何地方被列举和解释?

根据Gruntconfiguration的惯例 ,“供应商”和“客户”是targets 。 他们的名字不是由grunt或grunt-browserify定义的。 你可以创build任意数量的目标,并给他们你喜欢的名字。 每个目标都具有filesconfiguration,这在大多数Grunt任务(如srcdest )以及optionsconfiguration(常见于插件特定)中很常见。 “dist”是目标的另一个例子,“preBundleCB”是grunt-browserify browserify选项的属性。

您可以单独使用grunt browserify:vendorgrunt browserify:client来调用目标。 而grunt browserify调用了所有的browserify任务,在这个例子中是“vendor”和“client”。

grunt-browserify的每个目标都会创build一个绑定的脚本文件。 在这个例子中,“vendor”目标创build了vendor.js ,其中包含jquery ,名为momentWrapper和名为evt events 。 “客户端”目标创buildapp.js包含client/**/*.js momentWrapper及其依赖项,不包括jquerymomentWrapper