做出反应和浏览器化以与ES6一起使用

fra*_*ure 5 jsx grunt-browserify

我有一个配置为如下的browserify任务:

module.exports = function(grunt) {

  grunt.config.set('browserify', {
    dev: {
      src: 'assets/js/main.jsx',
      dest: '.tmp/public/js/main.js',
      options: {
        debug: true,
        extensions: ['.jsx'],
        transform: ['reactify']
      }
    }
  });

  grunt.loadNpmTasks('grunt-browserify');
};
Run Code Online (Sandbox Code Playgroud)

我尝试将其配置为以这种方式使用es6:

module.exports = function(grunt) {

  grunt.config.set('browserify', {
    dev: {
      src: 'assets/js/main.jsx',
      dest: '.tmp/public/js/main.js',
      options: {
        debug: true,
        extensions: ['.jsx'],
        transform: ['reactify', {'es6': true}]
      }
    }
  });

  grunt.loadNpmTasks('grunt-browserify');
};
Run Code Online (Sandbox Code Playgroud)

但是,这将导致错误:

错误:路径必须是字符串

鉴于我不想在package.json中配置转换,因此我无法从文档中了解如何执行此操作。任何帮助,将不胜感激。

fra*_*ure 4

变换选项后我缺少一个括号。这有效:

module.exports = function(grunt) {

  grunt.config.set('browserify', {
    dev: {
      src: 'assets/js/main.jsx',
      dest: '.tmp/public/js/main.js',
      options: {
        debug: true,
        extensions: ['.jsx'],
        transform: [
          [ 'reactify', {'es6': true} ]
        ]
      }
    }
  });

  grunt.loadNpmTasks('grunt-browserify');
};
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这个缺失的括号真的很难调试。 (2认同)