需要jsx文件而不指定扩展名

时间:2015-01-26 22:07:48

标签: javascript reactjs browserify react-jsx

我正在使用 browserify watchify ,并希望require()除默认扩展程序.js.json以外的文件没有指定扩展名,例如:

// Not ideal (tedious)
var Carousel = require('./components/Carousel/Carousel.jsx')

// Ideal
var Carousel = require('./components/Carousel/Carousel')

我已尝试 browserify 文档中指定的--extension=EXTENSION

"scripts": {
  "build": "browserify ./src/App.js --transform [ reactify --es6 ] > dist/script.js -v -d --extension=jsx",
  "watch": "watchify ./src/App.js --transform [ reactify --es6 ] -o dist/script.js -v -d --extension=jsx"
},

但是我没有看到任何变化。这可能吗?什么是正确的方法呢?

1 个答案:

答案 0 :(得分:16)

修改(2015年4月27日): 我只是注意到在问题中,extension的参数无效,如下所示:

"watch": "watchify ./src/App.js --extension=jsx -o dist/script.js -v -d"

它应该是(注意.中的--extension=.jsx(点):

"watch": "watchify ./src/App.js --extension=.jsx -o dist/script.js -v -d"

原始答案

browserify选项添加到package.json browserify 添加,但不是为 watchify

"scripts": {
  "build": "browserify ./src/App.js > dist/script.js -v -d",
  "watch": "watchify ./src/App.js -o dist/script.js -v -d"
},
"browserify": {
  "extension": [ "jsx" ],
  "transform": [ [ "reactify", { "es6": true } ] ]
}

extension命令添加watch命令,使 watchify 工作。

"watch": "watchify ./src/App.js --extension=.jsx -o dist/script.js -v -d"

但是,非DRY。我想尽可能缩短我的命令,但是〜哦,好吧〜。