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