让tishadow 不要监控 coffee 文件的改动 ( customize tishadow-watching file types)
访问量: 2651
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来同一把它们编译到对应的位置.