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

IT技术 javascript reactjs browserify react-jsx
2021-05-21 07:27:39

我使用browserifywatchify,并希望require()不是默认的扩展名的其他文件.js,并.json没有指定扩展名,比如:

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

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

我已经--extension=EXTENSION按照browserify文档中的说明进行了尝试

"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个回答

编辑(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。我想让我的命令尽可能简短,但是〜哦哦〜。