目前 Babel 6.x 加载性能已经基本没有问题,建议可以优先尝试 https://github.com/fex-team/fis-parser-babel-6.x
具体的 babel 配置参数可以参考 https://developit.github.io/babel-legacy-docs/
fis.config.set('project.fileType.text', 'es');
fis.config.set('modules.parser.es', 'babel-5.x');
fis.config.set('roadmap.ext.es', 'js');
fis.config.set('settings.parser.babel-5.x', {
blacklist: ['regenerator'],
stage: 3
});
fis.set('project.fileType.text', 'es');
fis.match('server/**.es', {
parser: fis.plugin('babel-5.x', {
blacklist: ['regenerator'],
stage: 3
}),
rExt: 'js'
});
Babel 默认就可以编译 React ,但是建议调整一下后缀名以适配 FIS 的资源定位能力
fis.set('project.fileType.text', 'jsx');
fis.match('server/**.jsx', {
parser: fis.plugin('babel-5.x', {
blacklist: ['regenerator'],
stage: 3
}),
rExt: 'js'
});
FIS2 无法支持 jsx 文件内部的图片等资源文件的定位能力,因此建议在 FIS3 下使用 React
以下例子以 FIS3 为示例,FIS2可参考调整
fis.match('server/**.es', {
parser: fis.plugin('babel-5.x', {
sourceMaps: true
}),
rExt: 'js'
});
如果使用的是 FIS2 ,为了保证 sourcemap 的功能正常,请确认 FIS2 版本 > 1.9.3
fis.config.set('modules.parser.js', 'babel-5.x');
fis.config.set('settings.parser.babel-5.x');
fis.config.get('roadmap.path').unshift({
reg: '**.es.js',
useBabel: true // 开启 Babel 编译,可以忽略
}, {
reg: '**.js',
useBabel: false // 关闭 Babel 编译
});