Каталог пользовательских библиотек для TypeScript

#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