Javascript react路由器站点地图中未定义Require

Javascript react路由器站点地图中未定义Require,javascript,node.js,reactjs,npm,node-modules,Javascript,Node.js,Reactjs,Npm,Node Modules,根据官方文档,sitemap-builder.js文件应如下所示: require('babel-register'); const router = require('./router').default; const Sitemap = require('../').default; ( new Sitemap(router) .build('http://my-site.ru') .save('./sitemap.xml') ); const

根据官方文档,sitemap-builder.js文件应如下所示:

require('babel-register');

const router = require('./router').default;
const Sitemap = require('../').default;

(
    new Sitemap(router)
        .build('http://my-site.ru')
        .save('./sitemap.xml')
);
const { default: Sitemap } = pkg
然而,当我运行npm运行站点地图时,我得到一个错误,该错误要求未定义。 我读到你不能在react中使用require,所以我尝试了导入语句

import Sitemap from 'react-router-sitemap'
但这里我得到了另一个错误,站点地图不是构造函数

My sitemap-builder.js:

import pkg from 'react-router-sitemap';
const { Sitemap } = pkg;

const router = [
    {
        path: '/',
    },
    {
        path: '/pravila',
    },
    {
        path: '/users/:uid',
    },
    {
        path: '/users/:uid/podcats/:pid',
    },
    {
        path: '/post',
    },
    {
        path: '/myprofile',
    }
]

(
    new Sitemap(router)
        .build('https://example.com/')
        .save('./sitemap.xml')
);
My package.json:

{
  "name": "podcasts",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "axios": "^0.19.2",
    "firebase": "^7.14.4",
    "react": "^16.13.1",
    "react-collapsible": "^2.8.0",
    "react-copy-to-clipboard": "^5.0.2",
    "react-dom": "^16.13.1",
    "react-infinite-scroll-component": "^5.0.5",
    "react-infinite-scroller": "^1.2.4",
    "react-player": "^2.0.1",
    "react-router-dom": "^5.2.0",
    "react-scripts": "3.4.1",
    "react-video-thumbnail": "^0.1.3",
    "reactjs-popup": "^1.5.0"
  },
  "type": "module",
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "predeploy": "npm run build",
    "deploy": "firebase build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "sitemap": "babel-node src/sitemap/generator.js"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@babel/core": "^7.10.2",
    "@babel/node": "^7.10.1",
    "@babel/preset-env": "^7.10.2",
    "@babel/register": "^7.10.1",
    "react-router-sitemap": "^1.2.0"
  }
}

您需要它的
default
,您可以像这样分解默认属性:

require('babel-register');

const router = require('./router').default;
const Sitemap = require('../').default;

(
    new Sitemap(router)
        .build('http://my-site.ru')
        .save('./sitemap.xml')
);
const { default: Sitemap } = pkg

您是否尝试过对默认值进行解构<代码>从“react router Sitemap”导入{default:Sitemap}感谢您的帮助,但是现在我得到了另一个错误ReferenceError:在初始化之前无法访问“router”你能更新代码吗?还是完全相同?更新了sitemap-builder.js将路由和sitemap组合在一个文件中并使用了建议的更改hmm我的建议是
导入{default:sitemap}
,但我看不到它