1

我最近想出了一个在 Node.js 上运行的新纯 JS Web 应用程序(不导入任何关于 TypeScript 的内容),将 Next.js@12.0.10 作为框架,TypeORM@0.2.41 作为 Azure SQL 服务器的 ORM 层.

一切正常,我已成功连接到 SQL 服务器。

但是,我不小心删除package.json了它而没有提交。无论如何,我设法重新安装了丢失的包typeormreflect-metadatamssql. 但是重新安装后,当我启动开发服务器时,我遇到了一个我从未见过的新错误。

error - ./node_modules/typeorm/browser/index.js
Module parse failed: 'import' and 'export' may appear only with 'sourceType: module' (3:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| /*!
|  */
> import "reflect-metadata";
| // -------------------------------------------------------------------------
| // Commonly Used exports

我搜索了一下,发现它可能与 webpack 有关。但我对此没有太多线索。下面是我的next.config.js顺便说一句。

module.exports = {
  reactStrictMode: true,
  webpack: (config, options) => {
    config.module.rules.push({
      test: /\.html$/i,
      loader: "html-loader",
    });

    return config;
  },
};

我尝试了一些基本的健全性检查,例如删除node_modules/并重新安装,但没有运气。有没有人知道发生了什么以及如何解决它?


更新:

在@hej 和GitHub 上的这个问题的帮助下,我将这部分添加到我的next.config.js并且它有效!

    config.module.rules.push({
      test: /\.[jt]sx?$/,
      include: [/node_modules(.*[/\\])+typeorm/],
      type: "javascript/auto",
      use: "babel-loader",
    });
4

1 回答 1

0

尝试将此添加到您的 webpack 配置中:

{
  module: {
    rules: [
      {
        test: /\.[jt]sx?$/,
        include: [/node_modules(.*[/\\])+typeorm/],
        use: "babel-loader",
      },
    ],
  },
}
于 2022-02-18T13:57:18.563 回答