我创建了一个npm包,其中包含多个TypeScript类,我想在各种项目中使用它们。例如:
><
这是在npm包中导出这些类的方式:
// dog.ts
import Animal from "../animal";
export class Dog extends Animal {
public bark(): void { console.log('bark'); }
}
我通过// main.ts
export {Dog} from "./animals/dog";
export {Cat} from "./animals/cat";
export {Ape} from "./animals/ape";
开始了一个空白的有角项目,通过ng new my-app
将npm包添加到了我的项目中,并将Dog类导入了AppComponent:
npm i @farm/animals
在生产构建(// app.component.ts
import { Component } from '@angular/core';
import { Dog } from '@farm/animals';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app';
lassie: Dog = new Dog();
}
)之后,我意识到,其他导出的类(如Cat和Ape)也被捆绑到main.js构建结果中。我以为它们会被摇树机制过滤掉。
如何实现仅将导入的类放入构建结果?我的导出结构有问题吗?
谢谢!
// edit:我刚刚意识到ng build --prod
完成了预期的工作。有没有一种方法可以单独导出这些类,并带有一个简短的导入名称?