【Mithril.js】msxの使い方メモ
はじめに
Mithril.jsの勉強始めて、そのうち少し大きいアプリとかつくりはじめたときに、
HTMLテンプレートの記述方法がちょっと複雑になってくるのかなと思いました。
で、調べたところドキュメントにもあったのですが、
こちらのツールを使うとHTMLをMithril形式に変換してくれるとのことでした。
が、実際に開発が進んでくると毎回このツールを使うというのもないかなぁとおもってmsxというツールの使うことにしました。
MithrilコンポーネントのviewメソッドにHTMLっぽい記述をしておいて、msxをコマンドラインで実行するとMithrilの形式に変換してくれるというツールです
インストール
gulpとgrantとでどちらでもokですが、とりあえずgulpで
npm install gulp gulp-msx
実装例
以下のようにJavascriptの公文的にはエラーなんですけど、わかりやすい記述が可能になります。
変換前ファイル
var Sample =
{
controller: function() {
}
view: function(controller) {
return <a href="#">リンク</a>
}
}
変換後ファイル
>||
var Sample =
{
controller: function() {
}
view: function(controller) {
return {tag: "a", attrs: {href:"#"}, children: ["リンク"]}
}
}
msxを直接実行
// msxコマンド 変換前ファイルがあるフォルダ 変換後ファイルの出力先 ./node_modules/gulp-msx/node_modules/.bin/msx src/ dest/
gulpfile.jsで設定してgulpコマンドで実行
gulpfile.js
var gulp = require("gulp");
var msx = require("gulp-msx");
gulp.task('msx', function() {
gulp.src('src/*.js') // 変換前ファイル
.pipe(msx())
.pipe(gulp.dest('dest/')) // 変換後ファイル出力先
})実行
./node_modules/.bin/gulp msx
gruntの場合
ほとんど同じだけどいちおうメモ
インストール
npm install grunt-cli grunt-msx
Gruntfile.js
module.exports = function(grunt)
{
grunt.initConfig({
msx: {
dist: {
files:
expand: true,
cwd: "src/",
src: "*.js",
dest: "compile/",
}]
}
},
});
grunt.loadNpmTasks("grunt-msx");
grunt.registerTask("default", ["msx"]);
};実行コマンド
./node_modules/grunt-cli/bin/grunt
まとまりないけど、以上です