【问题标题】:using grunt-browserify in Gruntfile.js在 Gruntfile.js 中使用 grunt-browserify
【发布时间】:2014-12-30 21:37:51
【问题描述】:

我很难找到关于如何使用 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']);
};

什么是“供应商”和“客户”,它们记录在哪里?在 README 文件中,他们提到了“preBundleCB”、“dist”,我见过很多其他的,并且大多数都有自己的数据结构。是否在任何地方列举和解释了这些选项?

【问题讨论】:

    标签: javascript node.js gruntjs browserify


    【解决方案1】:

    根据the convention of Grunt configuration,“供应商”和“客户”是targets。它们的名称不是由 grunt 或 grunt-browserify 定义的。您可以根据需要创建任意数量的目标,并为它们指定您喜欢的名称。每个目标都有files 配置,这在大多数Grunt 任务中很常见,例如srcdest,以及options 配置,这是特定于插件的。 “dist”是另一个目标示例,“preBundleCB”是grunt-browserify 选项的属性。

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

    grunt-browserify 的每个目标都会创建一个捆绑的脚本文件。在此示例中,“供应商”目标创建 vendor.js,其中包含名为 jquerymoment.js 和名为 momentWrapperevents,名为 evt。 “client”目标创建 app.js,其中包含 client/**/*.js 及其依赖项,不包括 jquerymomentWrapper

    【讨论】:

    • 非常有帮助,谢谢!我想在此日志中添加一件事,在 grunt.initConfig 中针对 browserify 节点执行的文件可以在 node_modules.grunt-browserify.tasks.browserify 中找到。新来的咕噜声,我不明白这种关系。
    猜你喜欢
    • 1970-01-01
    • 2014-08-09
    • 2016-03-02
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 2014-05-25
    • 1970-01-01
    相关资源
    最近更新 更多