我在找到如何使用grunt-browserify的解释时遇到了一些麻烦.查看他们的examples文件夹,我在他们的基本示例下查看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']); };
什么是“供应商”和“客户”,他们在哪里记录?在README文件中,他们提到“preBundleCB”,“dist”,我看过很多其他人,大多数都有自己的数据结构.是否在任何地方列举和解释了这些选项?
解决方法
根据
the convention of Grunt configuration,“供应商”和“客户”是目标.它们的名称不是由grunt或grunt-browserify定义的.您可以根据需要创建任意数量的目标,并为其指定您喜欢的名称.每个目标都有文件配置,这在大多数Grunt任务中很常见,例如src和dest,以及选项配置,这是特定于插件的. “dist”是目标的另一个例子,“preBundleCB”是grunt-browserify选项的属性.
您可以使用grunt browserify单独调用目标:vendor和grunt browserify:client.并且grunt browserify调用browserify任务的所有目标,在此示例中为“vendor”和“client”.
grunt-browserify的每个目标都会创建一个捆绑的脚本文件.在此示例中,“vendor”目标创建vendor.js,其中包含jquery,moment.js命名为momentWrapper和名为evt的事件. “client”目标创建app.js,其中包含client / ** / * .js及其依赖项,不包括jquery和momentWrapper.