2015-02-07 38 views
0

當使用grunt中的browserify將jsx文件轉換爲js文件時,是否有方法指定多個源 - >目標映射?轉換多個JSX文件

我有以下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

+0

我不使用咕嚕-browserify,但我假定任務的電流輸出是一個捆綁的文件?如果你想輸出另一個包,你需要一個單獨的任務。如果您可以提供您想要的輸出示例,可能會使問題更清晰。 – 2015-02-07 18:31:59

+0

是的輸出是一個單一的包。您建議每個捆綁包單獨執行任務是有意義的。我想我最初的目標是每個任務輸出多個捆綁包,但可能不支持... – TGH 2015-02-07 18:37:43

+0

它可能受grunt browserify支持,但任何內容都將在後臺運行多個browserify「捆綁包」。 Browserify是關於一個目的地。您可以使用[外部包](https://github.com/substack/browserify-handbook#external-bundles)通過多個包構建應用程序。 – 2015-02-07 18:42:36

回答

2

至於我,我不使用browserify,我使用grunt-react和react-tools。咕嚕反應允許用戶定義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' 
      } 
     ] 
     } 
    } 
}); 
+1

太好了。謝謝你的作品! – TGH 2015-02-07 22:48:00

+0

很高興爲您效勞。 – 2015-02-07 23:14:47