タグ

ブックマーク / blog.64p.org (5)

  • JS とかの管理を grunt+bower でやるようにしてみた - tokuhirom's blog

    bower 的なものを使わないと、「これどこから拾ってきたんや……」という感じになりがちなので、一応やったほうがいいでしょうと。 bower は直接使っていると、git のレポジトリをぶちまけるばかりで、あきらかに不要なファイルを配信することになり気持ち悪いなーと思っていたのですが、grunt なり gulp なりを使うと、いらないファイルは展開されないようです(ちゃんと main というプロパティを bower.json に記述している場合)。 Perl なりなんなりで書いていると、node.js のツールを一部だけ使うのとかだるくてアレですが、Java の案件だとみんな何かしら LL を併用しながらやるので、まあいいかな、と。 package.json に以下のように記述します。そうすれば grunt の依存とかもなんとなく入る。 { "name": "jmx-dashboard",

  • Const なんとかさん関連のツール群をつかうと、簡単に EcmaScript target の言語をつくれる! - tokuhirom's blog

    で、esprima とか関連のツール群は Mozilla の Parser API の AST 形式をサポートしています。詳細はここのへんかな。 https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API で、escodegen があるということは Parser API 形式の AST をはけば、そこから JS を生成できるってことですね。しかも escodegen は source-map の生成にも対応しているので、エラーの処理もらくちんで、実行時エラーがおきても、「ああ、JSでかいておけばよかった。。」とはならない(という未来がくることになっています) CoffeeScriptRedux というカッフィースクリプトのあたらし版をつくってるプロジェクトでは実際に CoffeeScript code => [parse

  • escodegen + esprima で JS のデバッグをしたら捗りそう - tokuhirom's blog

    以下のようなコードを実行すると console.log([ [1,1,8] [2,1,16] ]);このような結果になる。 [ undefined ]アレレーってなってたんだけど kazuho さんにきいたところ、 [1,1,8][2,1,16] => ([1,1,8])[(2,1,16)] => ([1,1,8])[16] => undefinedってことでした。 こんな時、Perl Monger ならとりあえず B::Deparse することによって解決の糸口をさがすんだけど、そういうの EcmaScript でどうすんすかね、ってなことを kazuho さんにきいたところ、esprima っていう es のパーサーがあるよって教えてもらったので、AST はとりだせたんだけど、AST をみても埒があかないので、AST からソースにおとす君がないかなーとさがしたところ const なんと

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    ama-ch
    ama-ch 2009/02/02
    がんばるぞ!
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    ama-ch
    ama-ch 2009/01/09
  • 1