2017-04-03 81 views
1

我正在使用webpack綁定我的打字稿項目,我正在使用淘汰賽作爲我的模板引擎。webpack2樹木與敲除模板

現在,當我構建生產項目時,它停止工作 - 一個淘汰模板抱怨屬性沒有定義。

我懷疑webpack2的樹形抖動算法正在刪除該屬性,因爲它沒有用在任何打字稿代碼中,但僅在敲除data-bind字符串中。

有沒有辦法告訴webpack始終包含某個屬性,即使它認爲它沒有被使用?

回答

1

我不是那麼熟悉webpack,但我遇到了與谷歌封閉編譯器相同的問題。這將刪除只在數據結合使用的屬性和混淆其他...

爲我工作的解決方案方向是一個淘汰賽本身也使用其源:ko.exportProperty

它用於像這樣:

var VM = function() { 
    this.somePropOnlyUsedInView = "Hello world"; 

    ko.exportProperty(this, "somePropOnlyUsedInView", this.somePropOnlyUsedInView); 
} 

的方法做了兩兩件事:

  • 它使用obj["string"]符號強制屬性名
  • 它實際上引用了屬性,使縮小器認爲它被使用並且不能被刪除。

讓我知道這個實用程序是否也適用於您的基於webpack的構建過程,我很想知道。

+1

很好的答案,謝謝。事實證明,在我的情況下,問題具有不同的性質,所以我實際上無法測試這是否適用於webpack –