<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <title><%= htmlWebpackPlugin.options.title %></title> </head> <body> <div id="root"></div> </body> </html>
gulp + Babel 備忘録 個人的メモとして(情報が古くなっている可能性があるので参考にするときは注意) gulpインストール nodeをインストール 適当にディレクトリを作成 コマンドプロンプトを起動してディレクトリに移動 (cd C:\gulp-test) C:\gulp-test> npm init 色々聞かれるので答える(後で変更可能なので分からなかったらEnterで飛ばしてOK) package.jsonが作られる gulpをグローバルインストール C:\gulp-test> npm install gulp -g 右のコマンドでバージョンが出たらOK C:\gulp-test> gulp -v 8で表示されたバージョンを指定(3.9.1の部分)してローカルにもインストール C:\gulp-test> npm install gulp@3.9.1 --save-dev 右の
module.exports = { presets: [ require("babel-preset-stage-1") ], plugins: [ require("babel-plugin-transform-do-expressions"), require("babel-plugin-transform-function-bind") ] }; Problems 私たちが望むもの、新しく『まだ確定していない』未来のJavaScriptを使うために、これらのプリセットは非常に優れた方法でした。 振り返ってみると、これは本当にうまくいっていました。 うまく行きすぎました。 Too Good a Job? CoffeeScriptのような言語、Traceurのようなツールは、JavaScriptをコンパイルする、という考え方を確立しました。 Babelは、将来の新しい構文を容易に今すぐ
babel-plugin の @babel/plugin-proposal-optional-chaining を導入すれば、safe navigation 演算子が使えるようになります。「safe navigation 演算子」とは、たとえば Ruby の &. です(Rubyでは「ぼっち演算子」とも呼ばれています)。あるいは ActiveSupport の Object#try です。hoge & hoge.fuga を hoge?.fuga と記述できるようになります。この文法は 2018/8/21 の時点で The TC39 Process の Stage 1 Proposal です。 導入環境の babel 関連パッケージのバージョンは以下です。scoped module の方を使っています。 "@babel/core": "^7.0.0-beta.56", "@babel/ru
一部修正しました Udemy で React コース公開してます。(絶対 Udemy の 1200 円割引価格にはしないので、このリンクから買ってもらうのが一番お互いに得です。) Udemy React + Redux コース 本発表における Modern JavaScript とは何か Phase 1 として以下の環境での開発ができれば Modern JavaScript に入門できたものとする。 Webpack, Parcel 等の module bundler による "module system" の活用。 ES2015+ や TypeScript といった "Compile to JS *1" の使用。それに伴う Babel によるトランスコンパイルツールの使用。 ESlint, Prettier といった集団開発における、ソース品質安定のためのツール の使用。 ここまでのツール
概要 昨今、JavaScriptコミュニティ界隈で騒がれているES6(ES2015)。クラスの導入など便利な機能が追加されてNode.jsでは既に導入されているというのに、フロントエンド環境(ブラウザ)上で利用できるようになるにはまだまだ先になりそうです。 そこで、フロントエンド環境でもES6を先取って開発する為の環境構築方法を記載します。 webpack + babel環境インストール ES6からブラウザが利用できるJavaScript(ES5)にコンパイル=変換を行う為の環境を構築します。 今回はwebpackという依存性を解決するツールとBabelというJavaScriptコンパイラを利用します。 本記事はライブラリ管理ツールであるnpmを用いる為、Node.js環境を既に構築してある前提です。Node.js環境のインストール方法はこちら。 参考:nodebrew を用いた Node
本エントリは Swift Tweets 2017 Summer でのツイート1をまとめ、加筆修正したものです。内容は 2017/07/22 時点でのものであることにご注意ください。 それでは、『実践Swiftコンパイラ』というタイトルで発表します。よろしくお願いします。 #swtws pic.twitter.com/Lx6pbZlLfO — Rintaro Ishizaki (@rintaro) July 22, 2017 Swift がオープンソース化されてしばらく経ちます。コンパイラにコントリビュートしたくても、どこから手をつけていいのやらと思ってませんか? コンパイラのコードを修正していくときに、具体的に何を手がかりにすれば良いのか、実際のバグを修正しながらご紹介します。 僕がコントリビュート始めたのは2016年の3月です。これが僕の初めてのPR。 日付に注目ください。完全に try
何これ? 午前中に、Twitter見てたらneuecc先生が 改めてdnSpy、とんでもなく素晴らしい出来で、本物のハッカーだなぁという感じ。本物のハッカーはGUIも完璧に作れる……。 https://t.co/DoZFNTpDUg — neuecc (@neuecc) 2017年3月16日 というツイートをしていて、何これ?と思いつつ、仕事戻ってきていじってみた。 そしたら、まぁ凄すぎて草しか生えなかったので、拙速は巧遅に勝る1の精神でとにかく書いてみた。ということで、最後までお付き合い頂ければ幸い。 C#やら、VBやらのデコンパイラはIL Spyとかが有名ですが、その遙か上を突き抜けたようなデコンパイラ。 何が凄いって言うと dnSpy単体でデバッグ可能 dnSpy単体で有りモノのアセンブリを編集可能 ILレベルでステップデバッグ可能 などなど、上げればキリが無いほど素晴らしいツールに
成果物 https://github.com/ktrkmk/rrrmaebwea 詳しくはリポジトリ側の README.md も御覧ください。 きっかけ Web アプリケーションにおけるバックエンド側をそれなりにやってきていましたが、とある日「10年のツケを支払ったフロント界隈におけるJavaScript開発環境(2016年4月現在)。」という記事を読み、フロントエンド界隈に少し興味を持ったのがきっかけになった感じです。 試そうとしたのはいいが… 早速その「React + Redux + react-router + material-ui + axios + ES2015 + Babel + webpack + ESLint + Airbnb JavaScript Style Guide」を試してみようじゃないか、と思ったものの、これだけ色々並ぶと何がなにやら状態。そもそも一番最初に必要
JavaScript を書くとき、もはや新しい ES でないとストレスではないでしょうか。 だからこそ僕らは新しい ES で開発してから、ブラウザ対応のために Babel を使って ES5 にトランスパイルするというのが定石となっていました。 しかし、必要最小限の機能に絞って高速なトランスパイルを実現する Buble 1 が登場しました。 TL;DR Buble は、 Babel やその他のトランスパイラと比べて以下の点で異なります。 仕様への準拠ではなくブラウザで動くことを目指す 設定ファイルは不要 高速なトランスパイル Babel は新しい ES で書かれたコードを ES5 ( など )の仕様に準拠したコードにトランスパイルすることが目的です。一方で、新しい ES から ES5 への “完全” な変換は不可能です。 そこで Buble の取ったアプローチは、他仕様へのトランスパイルでは
2017/05/22 追記:この記事は古いので、今からRustをはじめられる方はこちらの記事にあるrustupをご利用ください! プログラミング言語 Rust もラピッドリリースになり、コンパイラが頻繁にアップデートされるようになりました。homebrew やインストーラーではなく、multirust というツールを使ってインストールしておくと、アップデートを簡単に行えるようになって便利です。 公式サイトはこちら:brson/multirust multirust とは 複数バージョンの Rust をインストール / 管理できるツールで、以下のような特徴を持ちます。 オフィシャルに配布されている Rust バイナリをインストールできる ディレクトリごとに利用するツールチェーンのバージョンを管理できる nightly, beta, stable のリリースチャンネルを指定して、インストールや
概要 Electronとは、JavaScriptでデスクトップアプリが作れるツールです。 詳しくは前回の記事「30分で出来る、JavaScript (Electron) でデスクトップアプリを作って配布するまで」をご覧くだい。 これまではElectronを使ったアプリ開発方法について書いてきました。 今回はコードをガリガリ書いていく前に、開発環境を整えたいと思います。 今回はElectronの開発を ES6 + React でしたいと思いました。 そのための開発環境を gulp + babel を使って整えていきます。 この辺りは他の記事をかなり参考にしました。既に同じようなことをやっている方がたくさんいらっしゃいますが、個人的なメモも兼ねてまとめます。 参考記事 * ぼくのかんがえたさいきょうのElectron 何がしたいか まずは何がしたいか、というところから話します。 JavaScr
gulpの3.9.0からES6でタスクを記述できるようになったので使っていたけど、 Babelの6系にアップデートしたら動かなくなった。 ※ぼーっとしてたら最近いろいろアップデートされてていろいろ動かなくなっているので下の方に追記(2016/01/26) 現象 gulp: 3.9.0 babel-core: 6.0.14 以下のようにgulpコマンドでdefaultタスクを実行しようとしたところ importなんてしらない!と怒られる。。 [sawapi: ~/dev/git/sawapi/mw]$ gulp [17:11:48] Requiring external module babel-core/register /home/sawapi/dev/git/sawapi/mw/gulpfile.babel.js:3 import requireDir from 'require-di
さくっとelectronでbabel呼び出すところまでが良さそうな情報無くて錯綜した。 一旦出来たのでメモ (ビルド&配布あたりまでは行ってないが、まず動く感じのところまでなのでご了承) 出来上がりが見たい場合はこれ (もう記事より古くなってるので多分参考になりません) https://github.com/suisho/example-electron-babel/ 構成 好みだがこんな感じにしている $ tree -I node_modules . ├── app │ ├── client │ │ ├── Foo.jsx │ │ └── main.jsx │ ├── index.html │ └── index.js └── package.json コード本体は./app以下に固めている。トップ階層に入れておくと後でgulpfileとか膨れてきた時に汚い感
Babel 5 から 6 の間に API が大きく変わっています。Babel 6 のプラグインには Babel plugin handbook をおすすめします。thejameskyle さんは Babel のメンテナの一人です。 ES2015 や JSX を ES5 にトランスパイルする Babel。日常的に使っている方も多いかと思います。 そのままでも便利な Babel ですが、プラグインを使うことで独自のソースコード変換ルールを追加することができます。私もちょっと前から Angular 2 アプリを Babel で作るためのプラグインを書いたりしていました。結構簡単に作れるので、Babel 5.x でプラグインを作る方法を紹介してみたいと思います。 Babel の仕組み ざっくり言うと Babel は以下のような仕組みで動いています。 ソースコードをパースして AST を生成(Bab
RasPi用のRustバイナリをクロスコンパイルする環境が欲しかったので dockerでその環境を構築して誰でも利用できるようにdocker hubに登録した ビルトと実行について TL;DR ビルドコマンド dockerがインストールされている環境で以下のコマンドを実行する docker run -it --rm -v ${PWD}:/source yasuyuky/rust-arm cargo build --release --target=arm-unknown-linux-gnueabihf ビルド結果格納先: target/arm-unknown-linux-gnueabihf/release/ ビルド方法(もう少し長い版) dockerが実行可能な環境で以下のようにすればARM上で実行可能なバイナリが作成可能。 Rustのプロジェクトディレクトリに移動して
はじめに 以前、Rust0.7でコンパイラを作成してみたのですが、Rust0.11までバージョンが上がり、動かなくなってしまいました。開発中の言語の変更なので仕方ないのですが、Rustを参考にしたいのに、使い方が良くわからないと困るのでRust0.11に対応してみました。 エラーワーニング対策 マクロ、use,EAddという大文字で始まる関数を許可する為に以下のアトリビュートを使います。 #![feature(macro_rules)] #![feature(globs)] #![allow(non_snake_case_functions)] メイン関数 以前、~aと書いていた、~はboxと書くようになりました。boxと書くとヒープに値を取り、ポインタを持つようになります。 println!は出力マクロですが、{}に引数を展開します。 interp::evalがインタプリタで、virtu
2016-01-31追記 この記事を最初に書いた頃は他に何も情報がありませんでしたが、今ではよりだいぶわかりやすい資料が出揃ってきました。しっかりとしたimport/exportの仕様をもっと知りたい場合は下記を参照することを推奨します https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import http://www.slideshare.net/teppeis/effective-es6 http://uehaj.hatenablog.com/entry/2015/11/07/001848 2015/12/05追記 コメント欄より Babel v6 から Babel 公式の transform である transform-es2015-modules-commonjs を使った場合 ES
IE8 対応が必要な JavaScript に Babel (+ webpack) を使っているんだけど、素直に書くと動かないところがあったのでメモ。 とある事情により Polyfill も叶わない環境を想定している。 大体これと同じ内容: Caveats · Babel class を使うためには・・・ class を使ったコードを Babel に変換させると Object.defineProperties を使って class 相当を実現させようとする。しかし、IE8 以下の古い IE には Object.defineProperties が無いため、エラーになる。 IE8 でも class が使いたいときは、loose mode の es6.classes を使う:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く