Ошибка типа: Reaction_router_es_Router__WEBPACK_IMPORTED_MODULE_1 __. Default.computeRootMatch не является функцией - PullRequest
0 голосов
/ 09 октября 2018

Обновлен до Babel 8, и это сломало мое приложение SSR React.Это происходит сбой, когда response-router-config импортирует реагирующий маршрутизатор.Пробовал менять конфиги .babelrc и webpack безрезультатно.Webpack создает клиент и сервер, но не запускается.

TypeError: Reaction_router_es_Router__WEBPACK_IMPORTED_MODULE_1 __. Default.computeRootMatch не является функцией eval (webpack: ///./node_modules/react-router-conig).js?: 13: 70) в Array.some () в matchRoutes (webpack: ///./node_modules/react-router-config/es/matchRoutes.js?: 11: 10) в eval (веб-пакет: ///./src/server.js?:39:89) в Layer.handle [как handle_request] (веб-пакет: ///./node_modules/express/lib/router/layer.js?: 95: 5) в следующем (webpack: ///./node_modules/express/lib/router/route.js?: 137: 13) в Route.dispatch (webpack: ///./node_modules/express/lib/router/route.js?: 112: 3) в Layer.handle [как handle_request] (веб-пакет: ///./node_modules/express/lib/router/layer.js?: 95: 5) в eval (веб-пакет: ///./node_modules/express/lib / router / index.js?: 281: 22) в параметре (веб-пакет: ///./node_modules/express/lib/router/index.js?: 354: 14)

.babelrc

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "browsers": [
            "last 10 versions"
          ],
          "node": "current",
          "uglify": true
        }
      }
    ],
    "@babel/preset-react"
  ],
  "plugins": [
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-syntax-dynamic-import",
  ]
}

webpack

const path = require('path');

const config = {
  entry: ['@babel/polyfill', './src/client/index.js'],

  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'public'),
  },

  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        loader: 'babel-loader',
        exclude: /node_modules/
      },
      {
        test: /\.css$/,
        loader: 'style-loader!css-loader',
      },
      {
        test: /\.svg$/,
        loader: 'svg-inline-loader'
      }
    ],
  },
  resolve: {
    extensions: ['.js', '.jsx'],
  },
};

module.exports = config;

1 Ответ

0 голосов
/ 12 октября 2018

Все хорошо, когда я переключился обратно на response-router-config на 1.0.Внутри функции renderRoutes computeRootMatch импортировался из маршрута "/ es / computeRootMatch" с помощью оператора импорта.Webpack перевернул информацию о модуле "es".Возможно, я не поддерживал это в моих плагинах .babelrc.

...