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 にアップグレードするのを忘れてしまいました。