Velocity

方向を定めて

Vue CLI での環境構築覚え書き (2.x/3.x)

業務でVue.jsを使う機会があり、Vue CLIについて調べたのでまとめた

Vue CLIとは

Vue.jsを使った開発環境を整えるためのCLI (Command Line Interface)

2018/08/01現在、Vue CLI 3のステータスがRC (Release Candidate)*1
よって、正式バージョンのリリースが秒読み状態
数ヶ月もすれば環境はガラッと変わっていると思うので、ご参考までに。

前提条件

Node.jsとnpmがインストールされていること

インストール

npm i -g vue-cli

2018/08/01現在、stable versionの 2.9.6 が入る

今すぐ3.xを試したい好奇心旺盛な人は、
npm i -g @vue/cli

3.x へのアップデートに伴い、vue-cliから@vue/cliにパッケージ名が変更されている
2.x が入っていて 3.x に上げたい人は、npm rm -g vue-cli してから、3.xをインストールする必要があるみたい

プロジェクトの作成

vue create {project-name}

Vue CLI 3ではプロジェクト作成の推奨コマンド

Usage: create [options] <app-name>

create a new project powered by vue-cli-service


Options:

  -p, --preset <presetName>       Skip prompts and use saved or remote preset
  -d, --default                   Skip prompts and use default preset
  -i, --inlinePreset <json>       Skip prompts and use inline JSON string as preset
  -m, --packageManager <command>  Use specified npm client when installing dependencies
  -r, --registry <url>            Use specified npm registry when installing dependencies (only for npm)
  -g, --git [message|false]       Force / skip git initialization, optionally specify initial commit message
  -f, --force                     Overwrite target directory if it exists
  -c, --clone                     Use git clone when fetching remote preset
  -x, --proxy                     Use specified proxy when creating project
  -h, --help                      output usage information

2系までのvue initに比べ、柔軟にプロジェクトを作成することができる

コマンドを入力すると、設定をデフォルトで行うかマニュアルで行うか聞かれるのでカーソルキーで選択し、Enterキーで確定する

defaultを選択した場合、babel + eslint の標準的なプロジェクトが作成される

Manually select featuresを選択した場合、プロジェクトに必要な要素を選択できるのだが...

正直チェックの付け方が分からなく、3分は悩んだ
Enterを押すと次の画面に行くし、適当なショートカットを探しても見つからない

結果から言うと 1~9 でチェックをON/OFFできる
この記事を読んだ方にはA~Zをポチりまくるという悲しいことは是非しないでいただきたい (恥を晒していくスタイル)

チェックできる要素は以下の9つ

  1. Babel
  2. TypeScript
  3. Progressive Web App (PWA) Support
  4. Router
  5. Vuex
  6. CSS Pre-processors
  7. Linter / Formatter
  8. Unit Testing
  9. E2E Testing

チェック後はEnterで先に進み、選択した機能に応じてyes/noを答えていく
TypeScriptがサポートされていたり、Linterの選択肢にPrettierが含まれていたり色々お〜となった

プロジェクトを作成した後は、
cd {project-name} でプロジェクトディレクトリに移動し、
yarn serve でアプリが立ち上がる(これはyarnの場合、npmの場合はnpm run serve)

vue init {template} {project-name}

Usage: init [options] <template> <app-name>

generate a project from a remote template (legacy API, requires @vue/cli-init)

Options:

  -c, --clone  Use git clone when fetching remote template
  --offline    Use cached template
  -h, --help   output usage information

2.x のプロジェクト作成時に良く使われてたコマンド

templateを基にした構成でプロジェクトを作成することができる テンプレートで良く使われるものは下の3つ

webpack

2018/8/1時点で一番starが付いているvue-cli用テンプレート(7,774)*2

webpackを使った単一ファイルコンポーネントのテンプレート
webpack + vue-loader + hot-reload + ESLint + Jest + Nightwatch

GitHub - vuejs-templates/webpack
A full-featured Webpack + vue-loader setup with hot reload, linting, testing & css extraction.

pwa

PWA(Progressive Web App)用のテンプレート

GitHub - vuejs-templates/pwa
PWA template for vue-cli based on the webpack template

webpack-simple

webpack + vue-loader とシンプルなテンプレートで見通しが良くカスタマイズしやすい
これも単一ファイルコンポーネントとして.vueファイルが生成される

GitHub - vuejs-templates/webpack-simple
A simple Webpack + vue-loader setup for quick prototyping.

こちらもいくつか質問されるので、良きように答える
するとプロジェクトが作成される

cd {project-name} でプロジェクトディレクトリに移動し
npm run dev でアプリが立ち上がる

段々雑になった気がしないでもないが、とりあえずこんな感じ

Vue CLI 3 の目玉機能の Vue CLI UI の体験も素晴らしいものだったので、気が向いたら記事書く.

*1:内部での最終テスト段階、β版の次のイメージ

*2:なんとなく非常に惜しい気がする

20歳のエンジニアは何を学ぶべきなのか

6月13日で21歳になる。
一般的にマイルストーンとされやすい 30歳 まで10年間も残されている。

はえ~、まだ21歳だからなんとかなるっしょ~鼻ほじ~
とか言ってたらいつのまにかおじいちゃんになってそう。


なので、誕生日を迎える前にスキルを棚卸しして、
今後のキャリアをなんとなく考えていこう という記事。


今現在の言語周りのスキルをまとめるとこんな感じ

JavaScript
 唯一まともに書ける言語
 CMSのカスタマイズを業務で5月末まで行っていた
 ReactやVueを使った開発経験は無し

GAS
 業務で扱っていたため、普通に書ける
 業務効率化の用途が多いため、関心は薄い

Golang, Python
 簡単なスクリプトは書けるが、業務経験としては無し

英語
 Reading → ライブラリとかに書いてある平易な英語なら読める
 Listening → 語彙力の無さ & ジャパニーズ耳だからやばい
 Speaking → 文章として組み立てれない、単語ベースになってしまう


整理してみると本当にしょっぱい。
エンジニアなりたてだからこんなもんなのかな~とか思ってたら、
いつの間にか7ヶ月経っててびびる。

業務ではプレーンのJSとjQueryしか触っていなくて、
モダンな環境で開発がしたいという気持ちが非常に強い。切実に。


そもそも自分がどういったエンジニアになりたいか明確に定まっていない部分が問題なんだと思う。

現時点では アーキテクチャAPIの設計 とか パフォーマンスの改善 を将来的にはやってみたい。
しかし元々フロントエンドに憧れていたので、SPAの実装とかにも興味あるし...といった感じで定まらない。

そういったことをやっている人が周りにいないので、話を聞くことが出来ないのが若干のつらみである。


正直今までの半年間、家でコードを書いている時間があまりなかった。
目標だけはいっちょ前で行動が伴っていない最悪のパターン、コード書こう。

個人的には今後需要が増していくであろうGoをガッツリ勉強していこうかなと思っている。
あとやっぱり英語はそこそこできるようになっておきたい。
ドキュメントすらすら読みたいし、何よりかっこいい。


家でコードたくさん書いてGoodでCoolなエンジニアを目指してこう!

エンジニアになった


エンジニアになった。


まぁ実際のところ、11月からエンジニアとして働いているので、そろそろ半年になる。


前の記事でRubyがなんちゃらかんちゃらと言っていたが、今はJavaScriptを主に書いている。

半年経って思うことは前職より明らかに自分に向いている。


前職は、地方の工場でメンテナンスを行っていた。


毎日コンセントを分解したり大きなパイプを修理したりしていた。
元々自分は手先が器用でもなく、パワー系の人でもないので肉体労働はしんどかった。

何より来る日も来る日も。同じような作業をすることが苦痛でしかなかった。
飽き性にとってルーチンワーク程恐ろしいものはない。いやそんなことないか。


対してエンジニアは毎日自分にとって新鮮な問題に取り組むことができる。
頭を働かせて、うーんうーんと物事を考えることは嫌いじゃないので性に合う。


また 解が一つではない という点も非常に面白いと思う。

  • 問題にどのようにアプローチするか?
  • 配列、オブジェクトをどのように回すか?
  • 変数名、関数名の付け方は?
  • インデントはどのように空けるか?


人が変わればコードが変わる。
当たり前だが本当に面白い世界だと思う。


毎日新しい技術がぽこぽこ出てくるのも素晴らしい。

新しいもの好き、情報収集好きな自分にとっては毎日漫画の新刊が出るようなものだ。
昼休みはQiitaのトレンド記事とはてぶITの人気エントリーを漁ることが日課になっている。


新しい技術を学び続けないといけないのはもちろん簡単なことではないと思うけど、
毎日ぼけーっと過ごすよりも、ずっとずっと幸せだと思う。



半年前はスチールをパイプを繋いでいたかと思えば、

今ではstreamをpipeで繋いでいる...


という無理やりなオチ、Node.js勉強中です。

github.com