2014-10-07 57 views
3

我試圖在browserify和gulp中使用reactify轉換。當在package.json中聲明時,Reactify轉換不運行

這一口任務的工作原理:

return browserify({ 
     paths: ['./node_modules','./app/scripts/'], 
     entries: ['./app/scripts/index.js'], 
     transform: ['reactify'], 
     debug: true 
    }) 
    .bundle() 
    .pipe(source('bundle.js')) 
    .pipe(gulp.dest('.tmp/scripts/')); 

如果我刪除從一飲而盡變換鍵,將它移動到的package.json:

"browserify": { 
    "transform": [ 
     ["reactify", {"es6": true}] 
    ] 
    } 

變換不再運行(也試過不ES6) 。

我使用這個自耕農發生器:https://www.npmjs.org/package/generator-react-spa

任何人都可以請解釋?

回答

3

在的package.json的配置,那麼在兩種情況中使用:

  • 使用browserify命令行工具
  • 它比目前其它的軟件包(例如反應的的package.json配置用於當你需要它時)

如果你使用api,你手動指定變換。爲了避免重複自己:

var package = require('./package.json'); 
browserify({ 
     paths: ['./node_modules','./app/scripts/'], 
     entries: ['./app/scripts/index.js'], 
     transform: package.browserify.transform, 
     debug: true 
}) 

或者更一般這一點,其中合併可以將自己喜歡的合併執行方式(例如_.defaults

browserify(merge({}, package.browserify.transform, { 
     paths: ['./node_modules','./app/scripts/'], 
     entries: ['./app/scripts/index.js'], 
     debug: true 
})) 
+0

明白了,謝謝! – 2014-10-09 06:44:16

1

也許它不應該這樣工作?即browserify命令不讀取您自己的package.json,只讀取需要的模塊(?)。

https://github.com/substack/node-browserify#browserifytransform

現在,當有人需要()是你的模塊,BRFS將自動使用你的模塊的人應用到文件的模塊中沒有明確的干預。

+0

的Reactify文檔提到你「可以的package.json配置它」: https://github.com/andreypopp/reactify#es6-transformation – 2014-10-09 05:57:57