Jayaram
Jayaram

Reputation: 6606

using react-router-sitemap to generate sitemap.xml for an es2016 app

I'm trying to use react-router-sitemap to generate a sitemap.xml for my app. The app uses es2016 and as a reason , i'm getting a lot of unexpected token errors

my sitemap file

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');

my .babelrc file

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

this is the error i'm getting

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 |     };

Any ideas on how i can resolve this?

Upvotes: 2

Views: 2264

Answers (1)

xEc
xEc

Reputation: 359

It seems like react-router-sitemap is not loading your babel config. Try placing your "sitemap" file (sitemap-builder.js or equivalent) at the root of your react app.

Also, I am not sure why, but I could not get this to work while defining how to handle several extensions at once. Instead, I had to write something like this:

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

Upvotes: 1

Related Questions