vuejsの開発環境を構築する
vuejs2.0の開発環境を構築する手順を紹介します。
vueという空のフォルダを新規に作成し、このフォルダをプロジェクトフォルダとします。
package.jsonの作成
最初にnodejs
(javascript
)のパッケージ管理をするためにpackage.json
というファイルを作成します。以下の内容でpackage.json
のファイルを先ほど作成したvue
フォルダ直下に作成します。
package.json
{
"private": true
}
このファイルでvue
やvuex
やその他いろいろなパッケージを管理します。
通常はnpm init
のコマンドでファイルを作成するのですが、いろいろと細かい設定項目があるため、逆にわかりづらくなってしまいそうなので、今回は手動で作成し、設定項目も"private": true
のみ設定しました。
vueのインストール
コマンドで先ほど作成したvue
のフォルダに移動(カレントフォルダにセット)して、以下のコマンドを実行します。
npm install vue --save-dev
コマンド実行後、package.json
と同じフォルダにnode_modules
のフォルダが作成されたと思います。また、package.json
は以下のようになったと思います。
package.json
{
"private": true,
"devDependencies": {
"vue": "^2.0.5"
}
}
これは先程のコマンドで--save-dev
というオプションをつけたためです。このpackage.json
のファイルを別のPCにコピーして、npm install
のコマンドを実行すると全く同じ環境を作成することができるので、パッケージをインストールするときは--save-dev
のオプションをつけるのをおすすめします。
コードの実装
最初に、vue
フォルダの直下に新しくindex.html
のファイルを作成します。ファイルの内容は以下のようにします。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>vueで作るWEBアプリ</title>
</head>
<body>
<div id="app">
</div>
<script src="js/app.js"></script>
</body>
</html>
js/app.js
を読み込むように設定します。実際はapp.js
にコードを実装するのではなく、別の複数のファイルで実装したコードをビルドしてapp.js
を作成するという流れになります。
次に、vue
フォルダの直下に新しくassets
のフォルダを作成します。このフォルダの中でvue
のコードを実装していくことになります。
assets
フォルダ直下にapp.js
ファイルを作成します。ファイルの内容は以下のようにします。
import Vue from 'vue';
import 'babel-polyfill';
import App from './components/App.vue';
new Vue({
el: '#app',
render: h => h(App)
});
import
で指定しているbabel-polyfill
は古いブラウザに対応するために必要なのでインストールします。
npm install babel-polyfill --save-dev
次にimport
するApp.vue
を作成します。components
フォルダを作成し、その中にいろいろなvue
ファイルを作成していくことになります。
vue
ファイルの詳しい実装方法については別途紹介します。
<template>
<div class="root">
Hellow world
</div>
</template>
<style scoped>
.root {
background-color: red;
}
</style>
<script>
export default {
};
</script>
ビルドツールの導入
assets
フォルダで実装したコードをブラウザが認識できるように変換してjs/app.js
に出力するビルド処理を実装します。
gulp
ビルドツールにはいろいろありますが、今回はgulp
を使います。以下のコマンドでgulp
をインストールします。
npm install gulp --save-dev
gulpfile.bable.js
というファイルをルートフォルダ(package.json
のファイルと同じ場所)に作成します。ファイルの内容は以下のようにします。
import gulp from 'gulp';
import source from 'vinyl-source-stream';
import buffer from 'vinyl-buffer';
import browserify from 'browserify';
import babelify from 'babelify';
import vueify from 'vueify';
gulp.task('build', [], () => {
browserify('./assets/app.js')
.transform(babelify, { presets: ['es2015'] })
.transform(vueify)
.bundle()
.pipe(source('app.js'))
.pipe(buffer())
.pipe(gulp.dest('./js'));
});
ES6
で記述するために、gulp.js
ではなくgulp.bable.js
でファイル名を作成します。 import
で指定しているパッケージはビルドするのに必要なので全てインストールします。
npm install vinyl-source-stream --save-dev
npm install vinyl-buffer --save-dev
npm install browserify --save-dev
npm install babelify --save-dev
npm install vueify --save-dev
babel
gulp
でのビルドの際に、ES6
で実装されたコードをブラウザが認識できる従来のjavascript
に変換する必要があります。 以下のパッケージをインストールします。
npm install babel-core --save-dev
npm install babel-preset-es2015 --save-dev
gulp.bable.js
ファイルと同じ場所に.babelrc
というファイルを作成します。ファイルの内容は以下のようにします。
.babelrc
{
"presets": ["es2015"]
}
gulp build
のコマンドを実行するとjs/app.js
ファイルが作成されます。
ここまでの手順でpackage.json
は以下のようになっていると思います。
package.json
{
"private": true,
"devDependencies": {
"babel-core": "^6.18.2",
"babel-polyfill": "^6.16.0",
"babel-preset-es2015": "^6.18.0",
"babelify": "^7.3.0",
"browserify": "^13.1.1",
"gulp": "^3.9.1",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.1.0",
"vue": "^2.0.5",
"vueify": "^9.3.0"
}
}
ブラウザでindex.html
にアクセスすると赤い背景にhello world
と表示されて表示されれば無事にビルド環境が作成されたことを確認できます。
watchifyとgulpで自動コンパイルと差分更新をおこなうはファイルを監視して自動でビルドしたり、ブラウザを自動更新して、より開発環境を便利にしていきます。