不同的babel预设为后端和前端,但为相同的env

我有nodejs项目与反应前端部分,我想使用巴贝尔后端服务器(有导入/导出,和一些额外的function,如“装饰”,对象rest传播等)

此外,我想使用巴贝尔反应前端项目,但与不同的预置/插件集。 在后台我有最新的(8.2)nodejs,所以它已经知道类,asynchronous/等待等不应该被转移。 但在前端,我针对IE11,所以我必须启用大量的插件。 所以,如果我有单一的.babelrcconfiguration前端和后端我越来越transpiled后端代码。

我知道有一个'env'选项为babelconfiguration,但在描述的情况下,我有相同的'env'。 现在我结束了两个configuration:一个在package.json和一个在webpack.config(babel-loader选项)里面。 不过,我不喜欢结果,因为它可能会混淆新的开发者。 他可以在package.json里面findbabelconfiguration,并认为这是唯一的configuration,试图添加/修改某些东西,并努力为什么它不影响前端部分。

这样的设置也有一些问题:

Jest无法从webpack.config中读取babel设置,所以我必须在.babelrc中定义额外的“env”:“test”,只是为了开玩笑。 这在testing过程中导致不必要的后端传输。

这就是我在项目中解决问题的方式。 最好将两者分开,也许要明确在给定的背景下使用哪一个。 你的目标是两个完全不同的环境,有两个不同的configuration文件是有意义的。 从相同的代码库构buildwebview版本的地方,你也可以有一个单独的configuration。 对于每个“环境”你都会这样。

这可能会对新开发人员造成问题,但是我认为if (is_in_client_mode) ? 'one_config_value' : 'another_config_value' if (is_in_client_mode) ? 'one_config_value' : 'another_config_value'传播同样糟糕,没有两个文件的好处。