Автоматический импорт общих библиотек не работает в NX
Создал монорепозиторий NX с общей библиотекой в nextjs, typescript ("@nx/next": "16.5.1",
). Компоненты, расположенные в общей библиотеке, можно импортировать в основное приложение, написав оператор импорта вручную, например:import { Typography } from '@frontend/jsx-core';
Но я не хочу каждый раз писать оператор импорта, но не могу понять, как его можно предложить при автоимпорте vscode. У меня есть старый проект, где он работает "@nrwl/next": "15.6.3"
. Так что должно быть возможно..
Я сомневаюсь, что это настройка vscode, потому что в старом проекте она работает, а в новом - нет. Также создал новый проект с"@nrwl/next": "15.6.3"
, чтобы увидеть, работает ли это. Но здесь та же проблема. Поэтому мне действительно интересно, почему импорт предлагается в старом проекте, а не в новых.
Новый проект без автоматического импорта (ветвь: Feature/shared-lib): https://github.com/RowinVanAmsterdam/gamesource
Старый проект:https://github.com/koiosonline/koios.world--leg
Также проверил каждый файл конфигурации, если увидел какую-либо разницу, и попытался скопировать. Но пока не повезло.
Еще одно замечание: как только я импортировал общий компонент вручную и захотел добавить дополнительный общий компонент, автоматический импорт/предложение работает. Просит обновить уже существующий импорт.
ts.config.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": {
"@frontend/jsx-core": ["libs/jsx-core/src/index.ts"]
}
},
"exclude": ["node_modules", "tmp"]
}
ts.config.json:
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"jsx": "preserve",
"allowJs": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"resolveJsonModule": true,
"isolatedModules": true,
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"types": ["jest", "node"]
},
"include": [
"**/*.ts",
"**/*.tsx",
"**/*.js",
"**/*.jsx",
"../../apps/platform/.next/types/**/*.ts",
"../../dist/apps/platform/.next/types/**/*.ts",
"next-env.d.ts"
],
"exclude": [
"node_modules",
"jest.config.ts",
"src/**/*.spec.ts",
"src/**/*.test.ts"
]
}
tsconfig.spec.json:
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"],
"jsx": "react"
},
"include": [
"jest.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"
]
}
1 ответ
Проблема устранилась сама собой, был создан другой проект без каких-либо проблем, и после этого проблема больше не существовала.