我有一个带有反应前端部分的nodejs项目,我想将babel用于后端服务器(具有导入/导出,以及一些其他功能,如'装饰器',对象 - 休息 - 传播等)
此外,我想使用babel进行反应前端项目,但使用不同的预设/插件集。 在后端我有最新的(8.2)nodejs所以它已经知道类,async / await等不应该被转换。 但是在前端,我的目标是IE11,所以我必须启用大量的插件。 所以,如果我有前端和后端的单个.babelrc配置,我会得到过度传输的后端代码。
我知道babel配置有'env'选项,但在描述的情况下我有相同的'env'。 现在我结束了两个配置: 一个在package.json中,一个在webpack.config中(babel-loader选项)。 但是我不喜欢结果,因为它可能会让新开发者感到困惑。 他可以在package.json中找到babel config,并认为这是唯一的配置,尝试添加/修改某些内容并努力解决为什么它不会影响前端部分。
此类设置也存在一些问题:
Jest无法从webpack.config中读取babel设置,所以我必须在.babelrc中定义额外的“env”:“test”,只是为了开玩笑。 这导致测试期间不必要的转发后端。
答案 0 :(得分:0)
这就是我在项目中解决问题的方式。将两者分开是最好的 ,也许明确你在给定的上下文中使用哪一个。您的目标是两个截然不同的环境,有两个不同的配置文件是有意义的。如果您从相同的代码库构建webview版本,那么您也可以使用单独的配置。对于你拥有的每个“环境”等等。
这可能会给新开发者带来问题,但我认为让if (is_in_client_mode) ? 'one_config_value' : 'another_config_value'
传播同样糟糕,没有两个文件的好处。