我使用webpack捆绑我的打字稿项目,我使用knockout作为我的模板引擎。
现在,当我为生产构建我的项目时它停止工作 - 淘汰模板抱怨没有定义属性。
我怀疑webpack2的树抖动算法正在删除该属性,因为它不会在任何打字稿代码中使用,而只能用于挖空data-bind
字符串。
有没有办法告诉webpack即使在认为它没有被使用时也总是包含某个属性?
答案 0 :(得分:1)
我对webpack并不熟悉,但我遇到了与谷歌闭包编译器相同的问题。它将删除仅用于数据绑定的属性并混淆其他属性...
对我有用的解决方案是淘汰赛本身也在其来源中使用的解决方案:ko.exportProperty
它的使用方式如下:
var VM = function() {
this.somePropOnlyUsedInView = "Hello world";
ko.exportProperty(this, "somePropOnlyUsedInView", this.somePropOnlyUsedInView);
}
该方法做了两件事:
obj["string"]
表示法强制使用属性名称如果此实用程序也适用于基于webpack的构建过程,请告诉我,我很想知道。