在整一个叫 rain-boots 的脚本工具, 大家给点意见
发布于 12 年前 作者 jiyinyiyong 4018 次浏览 最后一次编辑是 8 年前

呃, 貌似一直用 CoffeeScript 语法是有点小众… 模块是 JS 的, 这个先不影响

我平常喜欢用 CoffeeScript, Jade, Stylus 来做各种静态网页模型玩 渐渐摸索到一点规律吧, 觉得用代码在网页上涂涂改改挺有意思的 渐渐的这套方法觉得依赖性比较大了, 最近写东西都会犯到这个问题, 就专门对付下

因为我用的代码都是要经过编译的, 编译的步骤就有点繁琐 我的 HTML 是用 Nginx 跑的, 相对来说没有自己写服务器 Serve 的麻烦 另一点是我用了一个 doodle 命令来实现网页保存时自动刷新 这样我涂改网页的时候, 很方便在另一个电脑上看运行效果, 刚开始听有意思的

接着我发现命令多了, 更方便写在的配置文件里的, 于是尝试了 Bash 脚本 结果脚本命令有阻塞, 用 & 放在后台执行又存在 kill 的麻烦 后来就开始用 Node 脚本来跑命令, 关闭方便多了, 只是配置文件不好… 中间尝试了 Grunt, 结果每次本地安装模块, 又不能直接跑进程, 好麻烦

于是就开始想自己的方案了, 用 Node 脚本来直接将几个动作串联起来 我现在的做法是让每个插件 exports 出来一个 EventEmitter 的实例, 通过 emiton 处理事件来关联不同的插件, 讲插件组合使用… 项目叫 Rain-boots, 放在 Github 上… 技术上是很简单没错…

Rain-boots 模块本身暴露的 require("rain-boots").rain 是个全局的 EventEmitter .boots 则是一些常用函数的集合, 现在还很粗糙… 每一个插件可以暴露自己的 .rain.boots 给外界, 来进行事件的传递 我自己的想法是在 Cakefile 文件里对这些事件进行组合搭配

尝试弄了个编译 coffee 的插件, 最后用的时候就像这样

coffee = require("coffee-boots").rain;
coffee.emit ("watch", {
  from: "a.coffee"
  to: "a.js"
});

然后检测到 a.coffeechange 事件就重新编译一次.

先打算完成一个自己基本需求能用的… 然后考虑下能不能方便别人用

2 回复

支持。这个任务的设置最好能从一个setting文件里读。能检测setting文件并更新,就是eat your own dog food 了 :)

现在的想法是常用功能也做成一个插件, 最后在脚本里两行代码引用 检测 Setting 文件的更新这个我没想过, 似乎用 Cakefile 处理不方便了

回到顶部