Vue.js を必要に迫られて久々に触りましたが、拡張性の高さと柔軟性にビビりまくってます笑
最近さらにコンポーネント化し、あれこれ拡張しなければなりませんでした。結構タスクランナーなどに頼らずに制作するのは限界があるなぁと思い、Gulp と webpack を使って改めて開発環境を作りました。
今回は Gulp と webpack を使った Vue.js の実務で使える実践的な開発環境の作り方をご紹介します。
手軽にVue.jsを導入する方法はこちらです。
かみーゆ/フロントエンドエンジニア
前提条件
- Gulpの使い方がわかる
- Webpackを使ってVue.jsのファイルをバンドル(まとめる)したい
- Vue.jsのコンポーネントを使いたい
- Node や npm をインストールしていて、コマンドが使える状態
- コマンドの使い方がある程度わかっている
- Compostion API を使いたい
今回は丁寧に順を追って説明します。「そんなの知ってるよ」って方は目次から必要な項目をすっ飛ばしてお読みください。
Gulp で webpack を使った環境を準備する
今回は Gulp を使った開発方法のご紹介です。webpack-stream
を使って webpack
を読み込む方法をご紹介です。
まずはディレクトリを作成し、そこでコマンドで package.json
を新規で作ります。
npm init -y
-y
オプションを付けることで、対話せずに package.json
が作成されます。
作成したら、いくつか node module をインストールします。
npm -D gulp browser-sync
それぞれの node module の役割です。
モジュール名 | 役割 |
---|---|
gulp | JavaScriptで記述できるビルドシステム。SassやJSをリアルタイムでコンパイルできるようになる |
browser-sync | 仮想サーバーを立てたり、コード更新とともにブラウザをリロードできるので作業効率化できる |
今回はディレクトリ構造は以下のようにします。
vue-sample/(ルートディレクトリ)
├ node_modules/(自動生成)
├ gulpfile.js(新規作成)
├ package.json(自動生成)
├ package-lock.json(自動生成)
└ public/
└ index.html(とりあえず空でオッケー)
gulp
コマンドが使えるように package.json
を編集します。scripts
にコマンドを追加します。
{
"name": "vue-practice",
"version": "1.0.0",
"description": "Sample for VUE sort Articles.",
"main": "index.js",
"scripts": {
"start": "gulp" },
"devDependencies": {
"browser-sync": "^2.27.11",
"gulp": "^4.0.2",
"webpack": "^5.75.0",
"webpack-stream": "^7.0.0"
}
}
browserSync で心地よい開発環境を作る
gulpfile.js
を追加し、まずはローカルにサーバーを立てます。
const { parallelh } = require("gulp");
const browserSync = require("browser-sync").create();
const paths = {
root: "public/",
};
const serverTask = () => {
browserSync.init({
server: {
baseDir: paths.root,
},
reloadDelay: 1000,
open: false,
startPath: '/',
});
}
exports.default = parallel(serverTask);
空でいいのでHTMLファイルを作ります。以下コマンドで http://localhost:3000/
にアクセスできたら成功です。
npm start
browserSync のオプション open
ですが、サンプルコード通り false
を付与することをおすすめします。付与しないと初期値は true
になっており、gulp
を起動するたびにブラウザが開くので鬱陶しいです。