当前位置: 首页 > 知识库问答 >
问题:

TypeError:在没有“new”的情况下无法调用类构造函数文档

莫逸仙
2023-03-14

我正在做一个项目(Next.js 8.1.0版),我想升级到9.2版。接下来我换了衣服。js版本到9.2,我遇到了这个问题:

类型错误:类构造函数应用程序不能被调用没有新的在新的MyApp(/home/节点/应用程序/src/. Next/服务器/静态/开发/页面/_app.js:4384: 191)在处理孩子(/home/节点/应用程序/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/react-dom/cjs/react-dom-server.node.development.js:3435: 22)在ReactDOMServerRenderer.read(/home/node/app/node_modules/react-dom/cjs/<####################################################################################################################################################################下一个服务器/服务器/render.js:346: 16)在Object.ctx.renderPage(/home/节点/app/src/. Next/server/静态/开发/页面/_document.js:2266: 26)在Function.get初始道具(/home/节点/app/src/. Next/server/静态/开发/pages/_document.js:1515: 19)在_callee$(/home/节点/app/src/. Next/server/静态/开发/页面/_document.js:2282: 77)在tryCatch(/home/节点/app/src/. Next/server/静态/开发/页面/_document.js:428: 40)在Generator.invoke[作为_invoke](/home/节点/app/src/. Next/server/静态/开发/页面/_document.js:654: 22)在Generator.prototype.(匿名函数)[作为下一个](/home/节点/app/src/. Next/server/静态/开发/页面/_document.js:480: 21)在asyncGeneratorStep(/home/节点/app/src/. Next/server/静态/开发/页面/_document. js: 124:24)在_next(/home/节点/app/src/. Next/server/静态/开发/页面/_document. js: 146:9)

这是我的next.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个答案

马高谊
2023-03-14

从GitHub问题中的一条评论中,您也对它进行了评论,说要从您的下一个中删除babel loader配置。js,如下所示。js已经包括了这个。

 类似资料:
  • 问题内容: 我有一门用Javascript ES6编写的类。当我尝试执行命令时,我总是会看到此错误 完整错误如下所述: 我想做的是,我创建了一个类,然后创建了该类的实例。然后,我试图导出该变量。 类结构定义如下: 我如何尝试导出变量-> 您可以在此处找到完整的代码> https://hastebin.com/kecacenita.js Babel生成的代码> https://hastebin.co

  • 问题内容: 我正在与colyseus(节点游戏服务器框架)进行服务器端聊天。我将typescript与module:commonjs一起使用,因为colyseus是基于commonjs构建的。 我有延伸的课。在运行时出现此错误: 和JavaScript的麻烦: 从打字稿类: 编译后删除有问题的行时,很容易跳过该错误。但是没有创建基类,这不是一个完整的解决方案。 我用谷歌搜索了这个问题,它似乎与ba

  • 我有很多Android ViewModel类,它们往往有很多依赖项(大多数是Room中的DAO,每个SQLite表一个)。有些依赖项超过10个。 这很好,但Inject构造函数充满了参数,并且只包含样板代码,用于从构造函数参数设置注入的成员。 我想切换到“常规”注入成员,使用注释单独标识,就像其他(哑)类一样。 这对于与Android相关的类(尽管ViewModel被宣传为非Android依赖,例

  • 我试图了解DI在我们的代码库(Kotlin)中是如何使用的。我们正在使用googleguice进行依赖注入。 下面是一个示例类: 在模块类中: DepB类别: 据我所知,对于用< code>@Inject注释的变量,Google Guice会使用模块类来解决这些依赖关系。所以< code>DepA对象的注入方式是有意义的。 但是呢?我们如何能够在不指定任何位置的情况下注入DepB?

  • 问题内容: 为什么此代码无法编译? 如果进行以下任一更改,则编译成功: 是私人的而不是公共的 第7行读取,而不是 使用Javac版本:1.6.0_20 问题答案: 应该注意的是,Eclipse 和Intellij IDEA在这些代码片段方面表现出不同的行为。和 Java的谜题 行为被用于讨论参考。 我可以将代码段缩减为以下内容: 在 Java Puzzlers , Puzzle 90中 讨论了这种

  • 问题内容: 如果你看一下课堂上的代码,我有两个问题: 服务器启动时,如果我在此类的构造函数中放置一个断点,就像在构造函数中那样,它是由spring使用配置的bean 提供的。但是,构造函数上没有注释,那么,在这个世界中如何以正确的依赖关系调用该构造函数?应该是null。 这是Spring Boot的自动假设吗? Spring是否看到“私有字段+构造函数参数”,并且假定它应该寻找合适的bean? 是