如何让 gulp-bro 导入以 .jsx 结尾的文件?

How can I get gulp-bro to import files ending with .jsx?

我正在尝试使用 gulp 和 gulp-bro 转译 jsx,我快到了,除非它无法导入组件,除非我将 .jsx 添加到导入的末尾.像这样:

import Viewer from './components/viewer/Viewer';

失败 Error: Cannot find module './components/viewer/Viewer'

同时:

import Viewer from './components/viewer/Viewer.jsx';

工作正常!

当然,导入树比这更复杂,所以如果可以避免,我宁愿避免将所有内容重命名为 .js 或明确指定 .jsx。

这是我的 gulp 文件的相关部分。它忽略了扩展设置。

gulp.task('viewer', function () {
  gulp.src('./app/js/app.jsx')
    .pipe(bro({
        transform: [
          babelify.configure({
            presets: ['env', 'react'],
          })
        ],
        extensions: ['js', 'jsx'],
        debug: true,
    }))
    .pipe(rename('app.js'))
    .pipe(gulp.dest(paths.js))
});

Gulp-bro passes its options to browserify. While browserify's documentation on the extension's option is not great, I did see How to specify browserify extensions in package.json? and Grunt-Browserify extensions flag not working 其中扩展选项必须包含“.”,例如

extensions: ['.js', '.jsx'],