我在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