Submit Search
Upload
Vue template-parserを作っている話
•
Download as PPTX, PDF
•
1 like
•
307 views
K
Koki Natsume
Follow
vue-template-parier
Read less
Read more
Engineering
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 23
Download now
Recommended
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF
Munenori Sugimura
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
Y Watanabe
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
Tasuku Suenaga
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
Y Watanabe
究極にして至高のWAF
究極にして至高のWAF
Yuki Ishikawa
自動的に開発環境設定(1)
自動的に開発環境設定(1)
Phạm Văn Hùng
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
Hayashi Yuichi
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
Jun-ichi Sakamoto
Recommended
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF
Munenori Sugimura
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
Y Watanabe
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
Tasuku Suenaga
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
Y Watanabe
究極にして至高のWAF
究極にして至高のWAF
Yuki Ishikawa
自動的に開発環境設定(1)
自動的に開発環境設定(1)
Phạm Văn Hùng
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
Hayashi Yuichi
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
Jun-ichi Sakamoto
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Y Watanabe
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
C# で Single Page Web アプリを開発できる Blazor ― その魅力
C# で Single Page Web アプリを開発できる Blazor ― その魅力
Jun-ichi Sakamoto
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
civic Sasaki
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
Blazor 触ってみた
Blazor 触ってみた
Oda Shinsuke
Beginners scala 20121113
Beginners scala 20121113
Taisuke Shiratori
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
Muyuu Fujita
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
Y Watanabe
[社内勉強会]Gradleを使おう
[社内勉強会]Gradleを使おう
hirooooo
Meguro es7
Meguro es7
健太 田上
JavaScript 研修
JavaScript 研修
Yuki Ishikawa
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
Chrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるには
Yosuke HASEGAWA
HTML5 アプリ開発
HTML5 アプリ開発
tomo_masakura
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
2013 08-19 jjug
2013 08-19 jjug
sk44_
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
BACKBONE.JSによるWebアプリケーション開発について
BACKBONE.JSによるWebアプリケーション開発について
Toshio Ehara
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
健人 井関
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
Shinichi Nishikawa
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
More Related Content
What's hot
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Y Watanabe
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
C# で Single Page Web アプリを開発できる Blazor ― その魅力
C# で Single Page Web アプリを開発できる Blazor ― その魅力
Jun-ichi Sakamoto
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
civic Sasaki
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
Blazor 触ってみた
Blazor 触ってみた
Oda Shinsuke
Beginners scala 20121113
Beginners scala 20121113
Taisuke Shiratori
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
Muyuu Fujita
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
Y Watanabe
[社内勉強会]Gradleを使おう
[社内勉強会]Gradleを使おう
hirooooo
Meguro es7
Meguro es7
健太 田上
JavaScript 研修
JavaScript 研修
Yuki Ishikawa
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
Chrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるには
Yosuke HASEGAWA
HTML5 アプリ開発
HTML5 アプリ開発
tomo_masakura
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
2013 08-19 jjug
2013 08-19 jjug
sk44_
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
BACKBONE.JSによるWebアプリケーション開発について
BACKBONE.JSによるWebアプリケーション開発について
Toshio Ehara
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
健人 井関
What's hot
(20)
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
C# で Single Page Web アプリを開発できる Blazor ― その魅力
C# で Single Page Web アプリを開発できる Blazor ― その魅力
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Blazor 触ってみた
Blazor 触ってみた
Beginners scala 20121113
Beginners scala 20121113
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
[社内勉強会]Gradleを使おう
[社内勉強会]Gradleを使おう
Meguro es7
Meguro es7
JavaScript 研修
JavaScript 研修
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Chrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるには
HTML5 アプリ開発
HTML5 アプリ開発
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
2013 08-19 jjug
2013 08-19 jjug
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
BACKBONE.JSによるWebアプリケーション開発について
BACKBONE.JSによるWebアプリケーション開発について
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
Similar to Vue template-parserを作っている話
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
Shinichi Nishikawa
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
Takeshi Arabiki
JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?
好洋 山崎
2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法
Hideo Takahashi
Djangoのススメ
Djangoのススメ
Alisue Lambda
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Maaya Ishida
jp IT Django project jp.pptx
jp IT Django project jp.pptx
ssuser5caf4d
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
Kiyokazu Kaba
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
Hiroko Tamagawa
WordPressのローカル開発環境構築【WordBench Nagoya 5月度勉強会】
WordPressのローカル開発環境構築【WordBench Nagoya 5月度勉強会】
masaya yamao
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1
Nishida Kansuke
PHPとJavaScriptの噺
PHPとJavaScriptの噺
Shogo Kawahara
210630 python
210630 python
Takuya Nishimoto
Web制作勉強会 #2
Web制作勉強会 #2
Moto Yan
php-timecopを実戦投入してみた
php-timecopを実戦投入してみた
Yoshio Hanawa
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
Yusuke Wada
Similar to Vue template-parserを作っている話
(20)
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?
2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法
Djangoのススメ
Djangoのススメ
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイル
jp IT Django project jp.pptx
jp IT Django project jp.pptx
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
WordPressのローカル開発環境構築【WordBench Nagoya 5月度勉強会】
WordPressのローカル開発環境構築【WordBench Nagoya 5月度勉強会】
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1
PHPとJavaScriptの噺
PHPとJavaScriptの噺
210630 python
210630 python
Web制作勉強会 #2
Web制作勉強会 #2
php-timecopを実戦投入してみた
php-timecopを実戦投入してみた
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
More from Koki Natsume
Studentgo1
Studentgo1
Koki Natsume
Spring aizu-lt-2018
Spring aizu-lt-2018
Koki Natsume
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)
Koki Natsume
Pwaを作ってみる(ejリクールトlt 2017/10/18)
Pwaを作ってみる(ejリクールトlt 2017/10/18)
Koki Natsume
Alt#0x008 2017/5/20
Alt#0x008 2017/5/20
Koki Natsume
Gcflt会2017/4/2
Gcflt会2017/4/2
Koki Natsume
機械学習勉強会2017/5/14
機械学習勉強会2017/5/14
Koki Natsume
Alt2016
Alt2016
Koki Natsume
機械学習勉強会2017/2/19(nn基礎)
機械学習勉強会2017/2/19(nn基礎)
Koki Natsume
More from Koki Natsume
(9)
Studentgo1
Studentgo1
Spring aizu-lt-2018
Spring aizu-lt-2018
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)
Pwaを作ってみる(ejリクールトlt 2017/10/18)
Pwaを作ってみる(ejリクールトlt 2017/10/18)
Alt#0x008 2017/5/20
Alt#0x008 2017/5/20
Gcflt会2017/4/2
Gcflt会2017/4/2
機械学習勉強会2017/5/14
機械学習勉強会2017/5/14
Alt2016
Alt2016
機械学習勉強会2017/2/19(nn基礎)
機械学習勉強会2017/2/19(nn基礎)
Vue template-parserを作っている話
1.
vue-template-parserを作っている話 s1240075 棗 光幹
2.
自己紹介 名前:棗 光幹 大学:会津大学学部2年(24期) 好きな技術:Web 好きな言語:Golang, JavaScript SNS:natsumen マイブーム:うまるちゃん、言語処理系
3.
目次 1. vue-template-parserって? 2. 動機 3.
中身について 4. まとめ
4.
vue-template-parserって? ● .vueファイルをパースするライブラリ ● vue用パーサコンビネータ ●
JavaScript実装 ● まだ途中です
5.
vue-template-parserって? ● .vueファイルをパースするライブラリ ● vue用パーサコンビネータ ●
JavaScript実装 ● まだ途中です ● 進捗はまだ温まってないです。
6.
動機 ● アルバイトで少々Vue.jsを書いてた。 ● vueのVSCode
pluginを書きたかった。 ● 既存vueのparserを使いたかったが,いい感じのがなかった。 ● ので、自作しよう。
7.
中身について ● template部分 ->
htmlparser2 で実装 ● script部分 -> babylon で実装 ● style部分 -> reworkcss/css で実装 ?(未定)
8.
中身について ● template部分 ->
htmlparser2 で実装 ● script部分 -> babylon で実装 ● style部分 -> reworkcss/css で実装 ?(未定) 目標! templateとscript部分を依存関係含めASTの構造に 直せるようにする。
9.
tempalte部分 ● メインでhtmlparser2を利用。 ● htmlparser2の結果をさらに自分で解析していく。 ●
htmlparser2は、タグ構造なら(たぶん)なんでもよしなにパースしてくれる。
10.
htmlparser2
11.
htmlparser2 こんな感じでタグがパースされる。 これをscriptのデータとひも付けたり する。で、その途中。
12.
script部分 ● メインでbabylonを利用。 ● パースできないものがあったら、随時自実装。
13.
babylonとは ● webフロントでおなじみのBabelの内部で利用されている JavaScriptパーサー。 JS parser
AST generato r JS traverser AST
14.
babylonとは ● webフロントでおなじみBabelの内部で利用されている JavaScriptパーサー。 JS babylon
AST generato r JS traverser AST
15.
babylon便利だ、楽しいな! 基本はこの2つのみ。 babylon.parser(code, [option]) babylon.parserExpression(code, [option]) 返り値は
Babel AST formatというオブジェクト。 babel-log(ライブラリ)とかで見れる。
16.
babylon便利だ、楽しいな! fileやmoduleなど 形式の指定。 JSXなどなどもパ ースできる。
17.
babylon便利だ、楽しいな! 結構長い。 5*5+(4-2)*2+9 で 452行分いく。 ASTのNodeの情報
Nodeの位置とかト ークンの情報 (より細かい)
18.
babylon便利だ、楽しいな! bindingする変数や関数、コンポーネントを htmlparser2のtreeとひも付ける。
19.
babylon便利だ、楽しいな! bindingする変数や関数、コンポーネントを htmlのtreeとひも付ける。 そんな感じで依存関係をもたせた templateとscriptの二つのASTオブジ ェクトの入った配列を返す。
20.
これから ● とりあえず、ファイル一つパースできるように。 ● pug(元jade)対応とかcss対応。 ●
依存関係を拾う。(子と親コンポーネントとか) ● もはや、自作でパーサー書いてみたり。
21.
まとめ ● htmlparser2はけっこうよしなにやってくれる。 ● babylon便利。 ●
BabelなどJSのトランスパイル文化は楽しい。 ● 言語処理系は楽しい。
22.
おわり
23.
ご清聴ありがとう ございました!
Download now