babel-maven-plugin 没有将传播运算符转换为 ES5

babel-maven-plugin not transpiling spread operator to ES5

我正在使用 DOJO 工具包,在升级为使用闭包编译器之后,我注意到我需要在 dojo build util 执行它的工作之前转换为 ES5,以便利用更新的 ES6+ 功能。

所以我正在使用 babel-maven-plugin 来完成这个。

...spread 运算符未转译外,一切正常。

我还需要下载 @babel/preset-env 软件包来设置 preset 选项吗?还是我缺少一个选项?

进一步发现不需要下载任何预设包

babel-standalone 通过其 API 作为 defined here and use in the babel-maven-plugin here.

接受预设选项

预设选项不会像 .babelrc 配置文件中定义的那样传递给 Babel API。它在没有 preset- 前缀的情况下传入。因此,要获得 @babel/preset-env 预设选项,您只需传入 env.

所以为了解决这个问题,这里是常见的预设以及如何将它们传递给 API:

  • @babel/preset-env --> env
  • @babel/preset-react --> react
  • @babel/preset-flow --> flow
  • @babel/preset-typescript --> typescript

所以为了使用 babel-maven-plugin 我需要设置 pom.xml 如下:

<plugin>
    <groupId>com.jarslab.maven</groupId>
    <artifactId>babel-maven-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
            <id>js-transpile</id>
            <phase>process-resources</phase>
            <goals>
                <goal>babel</goal>
            </goals>
            <configuration>
                <verbose>true</verbose>                                  
                <babelSrc>./js/babel/babel.min.js</babelSrc>
                <sourceDir>./js</sourceDir>
                <targetDir>./js</targetDir>
                <presets>env</presets>
            </configuration>
        </execution>
    </executions>
</plugin>