Nx 16 не удалось разрешить путь к библиотеке в интегрированном моно-репозитории React (js)

Привет, ребята, я новичок в NX Monorepo. Я просто следую инструкциям по созданию Integrated React Monorepo с официального сайта NX. эта ссылка прямо здесь

Я точно следую инструкции.

но у меня ошибкаimport { Banner } from '@myorg/common-ui';.

Невозможно найти модуль @myorg/common-ui или соответствующий ему типdeclarations.ts(2307).

Этоtsconfig.base.jsonв корне проекта.

      {
  "compileOnSave": false,
  "compilerOptions": {
    "rootDir": ".",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es2015",
    "module": "esnext",
    "lib": ["es2020", "dom"],
    "skipLibCheck": true,
    "skipDefaultLibCheck": true,
    "baseUrl": ".",
    "paths": {
      "@amir/common-ui": ["libs/common-ui/src/index.ts"],
      "@amir/products": ["libs/products/src/index.ts"]
    }
  },
  "exclude": ["node_modules", "tmp"]
}


и для каждого проекта реагирования внутри папки приложений у меня есть 3ts.config.

      tsconfig.app.json
===================

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "../../dist/out-tsc",
    "types": ["node", "vite/client"]
  },
  "files": [
    "../../node_modules/@nx/react/typings/cssmodule.d.ts",
    "../../node_modules/@nx/react/typings/image.d.ts"
  ],
  "exclude": [
    "src/**/*.spec.ts",
    "src/**/*.test.ts",
    "src/**/*.spec.tsx",
    "src/**/*.test.tsx",
    "src/**/*.spec.js",
    "src/**/*.test.js",
    "src/**/*.spec.jsx",
    "src/**/*.test.jsx"
  ],
  "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"]
}


      tsconfig.json
=================
{
  "compilerOptions": {
    "jsx": "react-jsx",
    "allowJs": false,
    "esModuleInterop": false,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "types": ["vite/client", "vitest"]
  },
  "files": [],
  "include": [],
  "references": [
    {
      "path": "./tsconfig.app.json"
    },
    {
      "path": "./tsconfig.spec.json"
    }
  ],
  "extends": "../../tsconfig.base.json"
}

      tsconfig.spec.json
=======================
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "../../dist/out-tsc",
    "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node"]
  },
  "include": [
    "vite.config.ts",
    "src/**/*.test.ts",
    "src/**/*.spec.ts",
    "src/**/*.test.tsx",
    "src/**/*.spec.tsx",
    "src/**/*.test.js",
    "src/**/*.spec.js",
    "src/**/*.test.jsx",
    "src/**/*.spec.jsx",
    "src/**/*.d.ts"
  ],
  "files": [
    "../../node_modules/@nx/react/typings/cssmodule.d.ts",
    "../../node_modules/@nx/react/typings/image.d.ts"
  ]
}


1 ответ

Это устарело, но у меня возникла аналогичная проблема при обновлении устаревшего проекта с использованиемnx migrate --latestс библиотекой реакции+витации.

Я сделал следующее, чтобы исправить проблему

Обновите версию пакета машинописного текста до >5.

Удалите следующий блок из библиотеки (в вашем случае это может бытьtsconfig.json):

         "files": [
     "../../../node_modules/@nx/react/typings/cssmodule.d.ts",
     "../../../node_modules/@nx/react/typings/image.d.ts"
   ],

Обратите внимание, чтоtypesмассив в моемtsconfig.lib.jsonеще есть записи для@nx/react/typings/cssmodule.d.tsи@nx/react/typings/image.d.ts.

Теперь он отлично строится без сборки кеша. При устранении неполадок с помощью Nx рекомендуется выполнять сборку без кеша, чтобы любые устаревшие записи не сбивали вас с толку.

например в моем случае (я использую pnpm):

      pnpm nx build my-lib-name-or-your-app-name --skip-nx-cache
Другие вопросы по тегам