使用react-router-sitemap为es2016应用程序生成sitemap.xml

时间:2019-01-02 13:34:09

标签: reactjs babeljs

我正在尝试使用react-router-sitemap为我的应用程序生成一个sitemap.xml。该应用使用es2016,因此,我遇到很多unexpected token错误

我的sitemap文件

require('babel-register');

require.extensions[('.css', '.png', '.jpeg', '.jpg')] = function() {
  return null;
};

const router = require('./app/containers/App').RouteGenerator;
const Sitemap = require('react-router-sitemap').default;

new Sitemap(router).build('http://trade.sensibull.test').save('./sitemap.xml');

我的.babelrc文件

{
  "ignore": ["node_modules/**/*"],
  "presets": ["es2016", "es2015", "react"],
  "plugins": [
    [
      "module-resolver",
      {
        "root": ["./app"]
      }
    ]
  ]
}

这是我遇到的错误

SyntaxError: /home/kj/Desktop/platform/frontend/app/utils/injectSaga.js: Unexpected token (20:28)
  18 | export default ({ key, saga, mode }) => WrappedComponent => {
  19 |   class InjectSaga extends React.Component {
> 20 |     static WrappedComponent = WrappedComponent;
     |                             ^
  21 |     static contextTypes = {
  22 |       store: PropTypes.object.isRequired,
  23 |     };

关于如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

似乎react-router-sitemap没有加载您的babel配置。尝试将您的“ sitemap”文件(sitemap-builder.js或等效文件)放置在React应用的根目录。

我也不知道为什么,但是在定义如何一次处理多个扩展时我无法使它起作用。相反,我不得不写这样的东西:

require.extensions['.css'] = function () {
  return null;
};
require.extensions['.png'] = function () {
  return null;
};
...