Я пытаюсь преобразовать существующую кодовую базу JavaScript в TypeScript по одному файлу за раз. Проблема с импортом.
Преобразование:
// JavaScript
const AWS = require("aws-sdk");
в:
// TypeScript
import AWS = require("aws-sdk");
работает, так как AWS SDK установлен в node_modules
. Когда я пытаюсь import
один из моих собственных модулей, конвертируя:
// This works, but is it "correct"? Path here is relative to compiled .js file
const C = require('../utils/constants');
в:
import C = require('../utils/constants');
, происходит сбой с Cannot find module '../utils/constants'.ts(2307)
.
Для контекста Вот пути соответствующих файлов (все пути, относящиеся к проекту root):
- Файл модуля, который я пытаюсь использовать:
utils/constants.js
- Оригинал
.js
файл: utils/sesUtil.js
- Эквивалент
.ts
файл: src/utils/sesUtil.ts
(это то, что мы обсуждаем здесь) - Скомпилировано
.js
файл: dist/sesUtil.js
Приводит меня к некоторым вопросам:
- Как правильно импортировать мои собственные (общие JS) JavaScript модули?
- Должен ли путь быть относительно того, где существует файл
.ts
(src/utils/ses.ts
) или относительно того, где скомпилированный файл .js
будет go (dist/ses.js
)?
Вот мой файл tsconfig.json
:
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": [
"node_modules/*",
"src/types/*"
]
}
},
"include": [
"src/**/*"
]
}