2015-06-21 60 views
3

在的package.json:如何在package.json中指定browserify擴展?

... 
"browserify": { 
    "transform": [ 
    "coffee-reactify" 
    ], 
    "extension": [ ".cjsx", ".coffee", ".js", ".json" ], 
    "extensions": [ ".cjsx", ".coffee", ".js", ".json" ] 
}, 
... 

當使用browserify transform選項正常工作,但browserify沒有看到extension(s)選項 - 它會拋出錯誤,我不得不手動通過擴展選項browserify ...


在gulpfile.coffee

b = browserify 
    entries: './' # ./ = root = directory where package.json is 
    debug: true 
b.bundle() 
.pipe(source('client.js')) 
.pipe(buffer()) 
.pipe(gulp.dest(distDir)) 

中的package.json

"browser": "src/client/client", 
"browserify": { 
    "transform": [ 
    "coffee-reactify" 
    ], 
    "extension": [ 
    "cjsx", 
    "coffee", 
    "js", 
    "json" 
    ] 
}, 

的src /客戶/ client.cjsx

otherModule = require './other-module' # other-module.cjsx 
  1. 當我的package.json從transforms刪除coffee-reactify然後browserify拋出錯誤Parsing file .../src/client/client.cjsx: Unexpected token (2:16)

  2. 當我把回coffee-reactifytransforms在package.json中,那麼只要我不需要任何其他,那麼browserify就會成功解析來自client.cjsx之內的文件。所以對於client.cjsx上述browserify示例代碼拋出錯誤:Cannot find module './other-module' from '/src/client - browserify仍然不能識別擴展...

所以browserify讀取的package.json(識別package.browserify.transforms和package.browser領域,但它不承認擴展)

+0

您是否嘗試在您的'browserify'命令中添加'--extension = [EXTENSION]'? – marcel

+2

是的,它的工作原理,但我希望它沒有這個選項 - 我想在我的package.json中定義它,而不是... – user606521

回答

0

試試這個:

"browserify": { 
    "transform": [ 
    "coffee-reactify" 
    ], 
    "extension": [ 
    "cjsx", 
    "coffee", 
    "js", 
    "json" 
    ] 
}, 

取出.點。看看this question

+0

不適用於我:(。 – user606521

+0

你的'package'腳本怎麼樣? – marcel

+0

我已經更新了我的問題,更詳細的內容 – user606521

1

我們遇到了同樣的問題。我們能夠通過將extensions添加到browserify吞嚥函數調用中來獲得它的工作。

browserify({ 
    entries: "src/index.coffee", 
    extensions: [".cjsx", ".coffee", ".js", ".json" ] 
}) 

根本就沒有在package.json中,只是在gulp命令中。

相關問題