Как машинописный текст разрешает импорт @ angular / core / testing и как упаковывается угловое ядро?

1

Для import {Injectable} from '@angular/core'; Я полагаю, что атрибут модуля package.json указывает на файл, который экспортирует injectable? Для формата @angular/core/testing есть тестовая папка в @angular/core которой есть еще один package.json с атрибутом модуля, указывающим на файл, содержащий экспорт, который экспортирует дополнительный модуль testing?

Теги:
angular
npm

1 ответ

1
Лучший ответ

Ты на что-то. Если посмотреть на исходный код модуля @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 поскольку вы импортируете материал из библиотеки, а не всего пакета.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню