TypeError: Документ конструктора класса не может быть вызван без 'new' - PullRequest
0 голосов
/ 07 августа 2020

Я работаю над проектом (Next. js версия 8.1.0) и хочу перейти на версию 9.2. Я изменил версию Next. js на 9.2, и у меня возникла эта проблема:

TypeError: Приложение-конструктор класса не может быть вызвано без «нового» в новом MyApp (/ home / node / app / src /.next/server/static/development/pages/_app.js:4384:191) в processChild (/home/node/app/node_modules/react-dom/cjs/react-dom-server.node.development. js: 2995: 14) при разрешении (/home/node/app/node_modules/react-dom/cjs/react-dom-server.node.development.js:2960:5) в ReactDOMServerRenderer.render (/ home / node / app / node_modules / response-dom / cjs / response-dom-server.node.development. js: 3435: 22) в ReactDOMServerRenderer.read (/ home / node / app / node_modules / response-dom / cjs / response-dom-server.node.development. js: 3373: 29) в renderToString (/home/node/app/node_modules/react-dom/cjs/react-dom-server.node.development.js: 3988: 27) при рендеринге (/home/node/app/node_modules/next/dist/next-server/server/render.js:81:16) в renderPage (/ home / node / app / node_modules / следующий / dist / next-server / server / render. js: 346: 16) в Object.ctx.renderPage (/home/node/app/src/.next/server/static/development/pages/_document.js:2266:26) в Function.getInitialProps (/ home / node / app / src / .next / server / static / development / pages / _document. js: 1515: 19) в _callee $ (/home/node/app/src/.next/server/static/development/pages/_document.js : 2282: 77) в tryCatch (/home/node/app/src/.next/server/static/development/pages/_document.js:428:40) в Generator.invoke [как _invoke] (/ home / node / app / src / .next / server / static / development / pages / _document. js: 654: 22) в Generator.prototype. (анонимная функция) [как следующая] (/ home / node / app / src / .next / server / static / development / pages / _document. js: 480: 21) в asyncGeneratorStep (/home/node/app/src/.next/server/static/development/pages/_document.js: 124: 24) в _next (/home/node/app/src/.next/server/static/development/pages/_document.js:146:9)

Вот мой следующий .config. js:

    const withSass = require('@zeit/next-sass');
const { resolve } = require('path');

let baseUrl = process.env.BASE_URL;
baseUrl = baseUrl && baseUrl.length && '/' !== baseUrl ? baseUrl : '';

module.exports = withSass({
  transpileModules: ['file-type'],
  webpack(config, options) {
    config.module.rules.push({
      test: /\.tsx?$/,
      use: [
        {
          loader: 'babel-loader',
          options: {
            configFile: resolve('babel.config.js'),
          },
        },
        {
          loader: 'ts-loader',
          options: {
            // disable type checker - we will use it in fork plugin
            transpileOnly: true,
          },
        },
      ],
    });
    config.module.rules.push({
      test: /node_modules\/file-type/,
      use: [
        {
          loader: 'babel-loader',
          options: {
            configFile: resolve('babel.config.js'),
            exclude: /node_modules\/(?!(file-type))/,
            include: /node_modules\/file-type/,
            sourceType: 'unambiguous',
          },
        },
      ],
    });

    config.resolve.extensions.push('.ts');
    config.resolve.extensions.push('.tsx');
    config.resolve.extensions.push('.jsx');
    /* if (options.isServer) {
      config.plugins.push(new ForkTsCheckerWebpackPlugin({ tsconfig: resolve('./tsconfig.json') }));
    } */

    return config;
  },
  pageExtensions: ['jsx', 'tsx'],
  cssModules: true,
  cssLoaderOptions: {
    importLoaders: 1,
    localIdentName: '[local]___[hash:base64:5]',
  },
  sassLoaderOptions: {
    includePaths: [resolve('src/scss')],
  },
  webpackDevMiddleware: config => {
    if (process.env.ENABLE_WATCH_POLL) {
      const watchOptions = {
        poll: true,
        aggregateTimeout: 500,
        ignored: [
          '.git/**',
          'src/.next/**',
          '**/__tests__/**',
          '.scannerwork/**',
          'cypress/**',
          'doc/**',
          'node_modules/**',
          'src/static/**',
        ],
      };
      return { ...config, watch: true, watchOptions };
    }
    return config;
  },
  publicRuntimeConfig: {
    env: process.env.APP_ENV,
    nodeEnv: process.env.NODE_ENV,
    apiProxy: process.env.API_PROXY,
    subscriptionKey: process.env.OCP_APIM_SUBSCRIPTION_KEY,
    apiEndpoint: process.env.API_ENDPOINT,
    serverPort: process.env.SERVER_PORT,
    gmapApiendpoint: process.env.GMAP_API_KEY,
    gigyaApiKey: process.env.GIGYA_API_KEY,
    gigyaDatacenter: process.env.GIGYA_DATACENTER,
    templateReimbursementLink: process.env.TEMPLATE_REIMBURSEMENT_LINK,
    reimbursementStatusLink: process.env.REIMBURSEMENT_STATUS_LINK,
    gtmId: process.env.GTM_ID,
    captchaSiteKey: process.env.CAPTCHA_SITE_KEY,
    baseUrl,
    redisPort: process.env.REDIS_PORT,
    redisHost: process.env.REDIS_HOST,
    redisPassword: process.env.REDIS_PASSWORD,
  },
});

1 Ответ

0 голосов
/ 17 августа 2020

Из комментария в проблеме GitHub вы также прокомментировали , в котором говорится об удалении babel-loader из вашего next.config.js, поскольку Next. js уже включает это.

...