#javascript #node.js #typescript
#javascript #node.js #typescript
Вопрос:
Я работаю над проектом, в котором интерфейс и серверная часть находятся в одном каталоге и оба используют TypeScript
.
Я использую общий путь для хранения некоторых интерфейсов и констант между двумя проектами.
Но, когда я пытаюсь экспортировать константу из любого файла в /shared
, я получаю :
Error: Cannot find module '@shared/test'
server-config.ts:
"compilerOptions": {
"baseUrl": "./src/server/",
"sourceMap": false,
"module": "commonjs",
"moduleResolution": "node",
"target": "ES2017",
"types": ["node"],
"outDir": "./dist/",
"allowJs": true,
"typeRoots": [
"node_modules/@types"
],
"paths": {
"@shared/*": ["../shared/*"]
},
/shared/test.ts:
// If I remove the following line, no compile error, even finds TheTest
export const TEST = 'test';
export class TheTest {
}
импорт
// << Module not found (only if I import TEST)
import { TEST, TheTest } from '@shared/test';
export function Foo() {
console.log(TEST);
}
Комментарии:
1. Итак, если вы оставите
TEST
in/shared/test.ts
, но только импортируетеTheTest
, это все еще проблематично?2. Импорт из
@shared/test
работает нормально, но если этоconst
то, что я импортирую, я получаюmodule not found @shared/test
3. хорошо, итак, просто наблюдение, но действительно ли const назван
TEST
? Если вы переименуете его во что-то другое и импортируете, это сработает?4. Это не так. Исходное название не было ТЕСТОВЫМ, я упростил его для публикации.
5. Хорошо, итак, наконец, это работает с
import * from '@shared/test'
?