转换多个JSX文件

时间:2015-02-07 17:38:24

标签: javascript gruntjs reactjs browserify

有没有办法指定多个来源 - >使用grunt中的browserify将jsx文件转换为js文件时的目标映射?

我在Gruntfile.js中有以下内容支持单个文件转换,但我希望能够为另一个文件指定第二个映射。我知道我可以将基于通配符的地图映射到单个组合目标文件中。然而,这不是我想要的,因为我不想要一个"全有或全无"在我的各个页面上包含反应组件。有些组件仅适用于几页,不应包含在任何地方。

browserify: {
            options: {
                transform: [ require('grunt-react').browserify ]
            },
            //How do I map a second file here without a wild card?
            client: {
                src: ['react_components/src/component1.jsx'],
                dest: 'react_components/build/component1.js'
            }
        }

基本上我希望的是一种在同一任务中提供src-dest映射数组的方法,以便创建多个目标文件:

client: [{
                src: ['react_components/src/component1.jsx'],
                dest: 'react_components/build/component1.js'
            }]

像上面的json

1 个答案:

答案 0 :(得分:2)

至于我,我不使用browserify,我使用grunt-react和react-tools。 grunt react允许用户根据正则表达式定义dynamic_mappings,如下所示:

//Gruntfile.js
grunt.initConfig({
    react: {
      dynamic_mappings: {
        files: [
          /* Controllers compiling. */
          {
            expand: true,
            cwd: './app/scripts/controllers/src',
            src: ['**/*.jsx'],
            dest: './app/scripts/controllers/dest',
            ext: '.js'
          },
          /* ui-components compiling */
          {
            expand: true,
            cwd: './app/scripts/ui-components/src',
            src: ['**/**.jsx'],
            dest: './app/scripts/ui-components/dest',
            ext: '.js'
          },
          /* JSX test compiling */
          {
            expand: true,
            cwd: './test/ui-components/src',
            src: ['**/**.jsx'],
            dest: './test/ui-components/dest',
                ext: '.test.js'
          }
        ]
      }
    }
});