Back

让tishadow 不要监控 coffee 文件的改动 ( customize tishadow-watching file types)

发布时间: 2015-02-12 00:12:00

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来同一把它们编译到对应的位置. 

Back