我在file car.ts中有一个名为Car的类,在另一个file engine.ts中有两个其他类的引擎。如何使用Typescript和Webpack的类来使用树形结构?
car.ts
import { V8Engine, Engine } from './engine';
class SportsCar {
constructor(private engine: Engine) {}
toString() {
return this.engine.toString() + ' Sports Car';
}
}
engine.ts
export interface Engine {
toString(): string;
}
export class V6Engine implements Engine {
toString() {
return 'V6';
}
}
export class V8Engine implements Engine {
toString() {
return 'V8';
}
}
export function getVersion() {
return '1.0';
}
console.log(new SportsCar(new V8Engine()).toString());
的car.ts文件只导入V8Engine类,但V6Engine类也出现即使在缩小的文件。我从engine.ts中导出的未使用函数被删除。
当没有UglifyJS插件运行Webpack时,V6Engine类将按照预期标记为/* unused harmony export V6Engine */
。 但添加插件后,我得到这个警告信息来自UglifyJS:
WARNING in car.prod.bundle.js from UglifyJs
Dropping unused function getVersion [car.prod.bundle.js:89,9]
Side effects in initialization of unused variable V6Engine [car.prod.bundle.js:73,132]
我有created a repository哪里出了问题可以重现。 克隆,安装和运行npm run webpack
和npm run webpack-prod
重现了此问题。
不知道这是否与Typescript转录,UglifyJS或这些工具的编排有关。 我正在使用Typescript 2.0-dev与es2015模块和Webpack 2.1.0-beta.21。
我看到了你在webpack repo上报告的问题,看起来这是正确的方式,但是由于UglifyJs2错误而不是发生树状抖动。 –
用Babili在存储库中解决它。 – Blacksonic