开源项目 Linner, 一个 HTML5 应用打包器.

Saito · 2013年07月14日 · 最后由 yuedefeng 回复于 2017年07月14日 · 11182 次阅读
本帖已被管理员设置为精华贴

地址:

https://github.com/SaitoWu/linner

特性:

  • 快!

  • 默认支持 SassCoffee

  • 支持 OS X Lion 以上的 Notification. ( 在编译出错的时候弹出。

  • Linner 放弃了 Sprockets 的 directive processor, 用简单的 YAML 配置文件解决 concat 问题。

  • Linner 同时解决了 Javascript 的模块化问题,所有 app/ 目录下的文件都会被 CMD 包装,这样每个文件只需要 module.exports 就可以导出可以被别的文件引用的内容。得到类似 node 的开发体验。

  • 实时 concat, 支持 watch, $ linner watch.

  • Concat 后同时支持 js, csscompress. $ linner build

  • Copy: 同时支持 copy 操作,支持通配符 copydist 目录

关于为什么要开发 Linner 的缘由:http://saito.im/note/Turbolinks-sucks/

HN: https://news.ycombinator.com/item?id=6043883

楼主,能不能举个栗子

#1 楼 @winnie

$ gem install linner
$ linner new webapp && cd webapp
$ linner watch
$ ./bin/server

看 webapp 里面的代码就懂了。

看懂了,楼主,你这是要造反。 等我早上起来看你还能不能说服我,晚安。

It looks cool!!!

#3 楼 @winnie 能说服你的只有 跳跳虎, 我真不行。XD.. 晚安~ #4 楼 @ichord Thanks!!!

#2 楼 @Saito

linner new webapp && cd webapp报错,已提 issue https://github.com/SaitoWu/linner/issues/4

#6 楼 @loveky 我在想,要不要支持 Ruby 1.9 呢?

#6 楼 @loveky readme 里面加上了 Requirements.

用了好多 Ruby 2.0 特性,to_h 太好用了,还有 keyword arguments. 还有 File 默认的 UTF-8 Encoding, 因为用了 Emoji.

#7 楼 @Saito 如果工作量不大的话,还是兼容一下吧,等用户觉得好用离不开了,在给他硬上 2.0,哈哈

#10 楼 @hooopo 非要说类似的话,跟 brunch/brunch 类似。配置的灵感来自这里。

#11 楼 @Saito 我是看名字类似,,都是 line 系列的

#12 楼 @hooopo 最大的区别难道不是:这是用 Ruby 写的。

楼主能移到 Rails 中去吗?你这个要我脱离 Rails,我很难过。

啊..... 看了那个 brunch 我就崩溃了。我用 Grunt 组装了这个项目, 麻烦死了!!! 不过很灵活........

#15 楼 @ichord brunch 的一些特性还不够灵活。我想要的做不到,再加上是 node 写的。我很难改的动..

其实都没有我这个灵活..

bower + grunt + yeoman 是最麻烦的,尤其是 Grunt.js 的脚本。

#16 楼 @Saito 对啊..... 而且 bower* 的目录结构很乱... 我还是觉得现在的前端项目管理的东西乱糟糟的。东拼西凑。

#17 楼 @ichord 接下来我有计划,会在 linner 里面加上 vendor 管理。声明外部资源的 url, 然后直接存在 vendor 目录里面。可以结合 github release flow.

bower 直接 checkout 整个 git repo 的方式真的是不好。

我还以为是客户端 ..

添加了 HN 的讨论地址。

可惜没文档。光 Readme,新手又得花时间摸索。支持 rails?

#2 楼 @Saito 请问 webapp 里面的目录结构是你自己定义的还是有什么公开的标准吗?能否解释下?

#22 楼 @jacarrichan 目录结构是一个最佳实践,没有公开标准。同时这个目录结构也不是固定的,你在 Linner 中可以随意修改。

#23 楼 @Saito 哦哦,我还以为是基于某个公开标准或者厂商标准

#21 楼 @hardywu 我就是传说中的新手,大神能否简单介绍一下

@saito 请问: Error at new JS_Parse_Error (C:\Users\ADMINI~1\AppData\Local\Temp\execjs20160419-7668-1s49z3ojs:2357:10 at js_error (C:\Users\ADMINI~1\AppData\Local\Temp\execjs20160419-7668-1s49z3ojs:2357:10842) at croak (C:\Users\ADMINI~1\AppData\Local\Temp\execjs20160419-7668-1s49z3ojs:2357:19067) at token_error (C:\Users\ADMINI~1\AppData\Local\Temp\execjs20160419-7668-1s49z3ojs:2357:19204) at unexpected (C:\Users\ADMINI~1\AppData\Local\Temp\execjs20160419-7668-1s49z3ojs:2357:19292) at block_ (C:\Users\ADMINI~1\AppData\Local\Temp\execjs20160419-7668-1s49z3ojs:2357:24537) at C:\Users\ADMINI~1\AppData\Local\Temp\execjs20160419-7668-1s49z3ojs:2357:24191 at function_ (C:\Users\ADMINI~1\AppData\Local\Temp\execjs20160419-7668-1s49z3ojs:2357:24256) at expr_atom (C:\Users\ADMINI~1\AppData\Local\Temp\execjs20160419-7668-1s49z3ojs:2357:27308) at maybe_unary (C:\Users\ADMINI~1\AppData\Local\Temp\execjs20160419-7668-1s49z3ojs:2357:29977)! 这个是什么原因啊

请教个问题,在 Ubuntu 下装了 oh-my-zsh 之后安装了 ruby,然后用 gem 安装了 linner,但是 linner 一直不可以用,是需要配置下 linner 的 path 吗? 错误信息如下: dupeng@ubuntu  ~/Dev/git-repository/linner0test  linner new webapp & cd webapp [1] 96495 cd: 没有那个文件或目录:webapp ✘ ⚙ dupeng@ubuntu  ~/Dev/git-repository/linner0test  /home/dupeng/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/dependency.rb:319:in to_specs': Could not find 'linner' (>= 0.a) among 16 total gem(s) (Gem::LoadError) Checked in 'GEM_PATH=/home/dupeng/.gem/ruby/2.3.0:/home/dupeng/.rvm/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0', executegem envfor more information from /home/dupeng/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/dependency.rb:328:into_spec' from /home/dupeng/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb:65:in gem' from /home/dupeng/.rvm/gems/ruby-2.3.0/bin/linner:22:in

' from /home/dupeng/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in eval' from /home/dupeng/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in'

[1] + 96495 exit 1 linner new webapp

linner 不能识别的类型:view.coffee

需要 登录 后方可回复, 如果你还没有账号请 注册新账号