#typescript #module #node-modules #libraries
#typescript #модуль #узел-модули #библиотеки
Вопрос:
Недавно я немного поработал с некоторыми более продвинутыми функциями TypeScript, и мне было интересно, есть ли способ определить пользовательский путь для библиотек, чтобы компилятор мог находить и использовать их, но не включал их в выходные данные. Я управлял чем-то подобным раньше, определяя typeRoots
, но это исключительно для файлов определений, и любая попытка импортировать исходные файлы приводит к тому, что библиотека не найдена.
В настоящее время мой клиент tsconfig.json
выглядит так
{
"compilerOptions": {
"module": "commonjs",
"outDir": "./dist",
"sourceMap": true,
"target": "es5",
"lib": ["ESNext"],
"rootDir": "lily",
"baseUrl": "/usr/lib/tslibs",
"typeRoots": ["/usr/lib/tslibs"],
"types": ["globals"]
}
}
Моя единственная проблема с этим заключается в том, что TypeScript жалуется, что /usr/lib/tslibs
находится за пределами rootDir
. Что может быть правдой, но если я определю структуру, подобную этой, вместо этого используя node_modules
папку для библиотек, я не получу эту проблему.
Я также заметил, что включение moduleResolution": "classic"
изменило ошибку на просто не удается найти библиотеку. Мне интересно, есть ли способ добиться этого, предпочтительно с минимальной конфигурацией на стороне клиента, насколько это возможно, поскольку клиенты должны быть в состоянии избежать определения этого.
Thansk
Комментарии:
1. Разделите свой проект и используйте функцию ссылок на проекты
2. Это потрясающе, большое спасибо. Есть ли способ сделать так, чтобы все элементы в каталоге стали ссылками?
3. Вот документация для функции ссылок на проект. Проверьте это: typescriptlang.org/docs/handbook/project-references.html