让tishadow 不要监控 coffee 文件的改动 ( customize tishadow-watching file types)
访问量: 2627
refer to: ... 额,还是我自己动手吧.
Tishadow 有个问题困扰着我: 能否不要监控 coffee 文件的改变? 或者只查看 xml, tss, js 的改变? 在 不要在jmk中编译coffee! 中已经提到, 使用jmk 编译coffee是走不通的.
翻看源代码之后,知道,这里的逻辑如下(使用了 gaze 这个组件库) :
// cli/tishadow 211 if (config.isWatching) { 212 config.buildPaths({},function() { 213 var paths = [config.isAlloy ? "app" :"Resources", "i18n", "spec"].map(function(p) { 214 return path.join(p,"**/*"); 215 }); 216 var responder; 217 gaze(paths, {cwd:config.base, interval: config.watchInterval}, function(err, watcher){ 218 this.on('all', function watcher(event, filepath) { 219 logger.debug(event + ": " + filepath); 220 if (!responder) responder = setTimeout(function() { 221 execute(); 222 responder = undefined; 223 }, config.watchDelay); 224 }); 225 }); 226 }); 227 api.startRepl(); 228 }
解决办法很简单: refer to: https://github.com/dbankier/TiShadow/pull/408 (这个pull request虽然被我关掉了,但是可以 参考这个代码)
1. 找到你的tishadow 的node module
2. 修改 cli/tishadow 文件:
// cli/tishadow return path.join(p,"**/*"); 修改成: return path.join(p,"**/*.{js,xml,tss}");
不过这样做的缺点是, 需要把你要关注的 文件的扩展名都写上,包括 .jpg, png啥的.
所以, dbankier 推荐的做法是,把所有 coffee, jade, stss 这样的辅助类 "源文件", 都放到src目录下,然后 使用grunt来同一把它们编译到对应的位置.