備忘録

忘れそうなこと色々

laravel 5.3 gulp環境構築メモ

elixirとかいうのが最初から入ってるので使ってみる。

使いたいのはpug, stylus(autoprefixer), webpack(babel)。

autoprefixer & webpack & babelは標準で入ってるのでそのまま使いつつ、stylus, pugもelixirで用意されてるが最初はpackage.jsonに入ってないので別途インストール。


■npm install


とりあえず全部入れてみる。

npm install


stylus追加

npm install --save-dev laravel-elixir-stylus


pug追加

npm install --save-dev laravel-elixir-pug



■設定



elixirの初期設定は↓にある。gulpfile.jsで設定を上書く。

node_modules/laravel-elixir/dist/Config.js



gulpfile.jsはこんな感じになった。

const elixir = require('laravel-elixir');

require('laravel-elixir-vue');
require('laravel-elixir-pug');


elixir.config.sourcemaps = true;
elixir.config.css.autoprefix.options = {
	browsers: [
		'last 2 versions',
		'ie >= 9',
		'iOS >= 7',
		'Android >= 2'
	],
	cascade: false
};

/*
 |--------------------------------------------------------------------------
 | Elixir Asset Management
 |--------------------------------------------------------------------------
 |
 | Elixir provides a clean, fluent API for defining some basic Gulp tasks
 | for your Laravel application. By default, we are compiling the Sass
 | file for our application, as well as publishing vendor resources.
 |
 */

elixir(mix => {
	mix.stylus('index.styl', 'public/css/index.css')
	.stylus('edit.styl', 'public/css/edit.css')

	.webpack('pages/[^_]*.js', 'public/js/index.js')
	.webpack('edit/[^_]*.js', 'public/js/edit.js')
	.webpack('lib.js', 'public/js/lib.js')
	.webpack('common.js', 'public/js/common.js')

	.pug({
			blade: true,
			src: 'resources/pug/',
			dest: 'resources/views/'
	});
});


ブログのイメージで公開ページと管理画面で分けました。
jsはjqueryとかloadashをlib.jsに、共通で使うのはcommon.jsで更にわけた。


pugはviews下に出力。デフォルトだとsrcがassets下になってて気持ち悪かったので変えてみる。
bladeをtrueにすると*.blade.phpで吐き出してくれる。


参考
https://laravel.com/docs/5.3/elixir