Для import {Injectable} from '@angular/core';
Я полагаю, что атрибут модуля package.json указывает на файл, который экспортирует injectable
? Для формата @angular/core/testing
есть тестовая папка в @angular/core
которой есть еще один package.json
с атрибутом модуля, указывающим на файл, содержащий экспорт, который экспортирует дополнительный модуль testing
?
Ты на что-то. Если посмотреть на исходный код модуля @angular
, вы действительно найдете каталог с именем testing
которого есть собственный package.json
.
Большинство библиотек TypeScript
используют шаблон Barrel import/export
для "украшения" ваших путей импорта.
путь/к/вложенный/файлам /injectable.ts
export function Injectable() {
...
}
dist/index.js - Файл, который отображается main
свойством package.json
.
export { Injectable } from 'path/to/nested/files/injectable.ts'
Это позволит вам
import { Injectable } from '@angular/core'
вместо
import { Injectable } from '@angular/core/path/to/nested/files/injectable.ts'
Разделяя модули, например, core
от testing
, вы получите выгоду от Tree-Shaking
поскольку вы импортируете материал из библиотеки, а не всего пакета.