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

时间:2017-11-07 13:42:36

标签: reactjs gulp browserify 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,如果我可以避免它。

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

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))
});

1 个答案:

答案 0 :(得分:0)

Gulp-bro将其选项传递给browserify。虽然有关扩展程序选项的浏览器文档效果不佳,但我确实看到了How to specify browserify extensions in package.json?Grunt-Browserify extensions flag not working,其中extensions选项必须包含"。"

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