У меня есть простой пример с использованием TypeScript: https://github.com/unindented/ts-webpack-example
Запуск tsc -p .
(с tsc
версия 1.8.10) вызывает следующее:
app/index.ts(1,21): error TS2307: Cannot find module 'components/counter'.
components/button/index.ts(2,22): error TS2307: Cannot find module 'shared/backbone_base_view'.
components/button/index.ts(3,25): error TS2307: Cannot find module 'shared/backbone_with_default_render'.
components/counter/index.ts(2,22): error TS2307: Cannot find module 'shared/backbone_base_view'.
components/counter/index.ts(3,25): error TS2307: Cannot find module 'shared/backbone_with_default_render'.
components/counter/index.ts(4,27): error TS2307: Cannot find module 'shared/backbone_with_subviews'.
components/counter/index.ts(5,20): error TS2307: Cannot find module 'components/button'.
Он жалуется на все импорт локальных файлов, например:
import Counter from 'components/counter';
Если я изменю его на относительный путь, он будет работать, но я не хочу, поскольку это затрудняет мою жизнь при перемещении файлов:
import Counter from '../components/counter';
Кодовая база vscode
не использует относительные пути, но для них все отлично работает, поэтому я должен что-то пропускать в своем проекте: https://github.com/Microsoft/vscode/blob/0e81224179fbb8f6fda18ca7362d8500a263cfef/src/vs/languages/typescript/common/typescript.ts#L7-L14
Вы можете проверить мой репозиторий GitHub, но в случае, если он помогает мне использовать файл tsconfig.json
, который я использую:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noImplicitAny": false,
"removeComments": false,
"preserveConstEnums": true,
"sourceMap": true,
"outDir": "dist"
},
"exclude": [
"dist",
"node_modules"
]
}
Забавно, что проект с помощью webpack
с помощью ts-loader
работает отлично, поэтому я предполагаю, что это просто проблема с конфигурацией...