ウェブサイト検索

webpack - モノレポ: (NextJS 13 + TypeScript) モジュール解析に失敗しました


現在動作している Next.js 13 アプリを単一のモノレポに移行しようとしています。基本的には、npx create-turbo@latest を使って新しいリポジトリを作成し、既存のリポジトリ(仮に「frontend」と呼びます)を apps/ フォルダに移動しました。その後、apps/frontend/package.json に 'ui' 依存関係を追加しました。

{
    "name": "frontend",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
        ...
        "ui": "*",
    }
    ...
}

そして、next.config.js に transpile オプションを追加しました:

experimental: {
    transpilePackages: ['ui'],
}

今のところ順調で、すべて正常に動作しているようです。しかし、その後、既存のプロジェクトからコンポーネントをUIフォルダに移動し、対応するすべての依存関係を追加したところ、実行すると次のエラーが出ます:

frontend:dev: error - ../../packages/ui/Button/Button.tsx
frontend:dev: Module parse failed: The keyword 'interface' is reserved (11:0)
frontend:dev: 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
frontend:dev: | import classNames from 'classnames';

何か設定を見落としていますか?

環境情報

Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 21.6.0: Mon Aug 22 20:19:52 PDT 2022; root:xnu-8020.140.49~2/RELEASE_ARM64_T6000
Binaries:
  Node: 16.13.2
  npm: 8.1.2
  Yarn: 1.22.19
  pnpm: N/A
Relevant packages:
  next: 13.0.4
  eslint-config-next: 12.3.4
  react: 18.2.0
  react-dom: 18.2.0

回答 #1

この問題に直面している方へ。これは私のミスです。初期のモノレポを作成するために npx create-turbo@latest を使ったのですが、その後プロジェクトを移動した直後に既存のプロジェクトを next13 にアップグレードするのを忘れてしまいました。