「Php/laravel/laravel5/laravelmix」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→npmコマンド) |
(→対象js,cssを増やす場合) |
||
行55: | 行55: | ||
mix.js('resources/assets/js/app.js', 'public/js') | mix.js('resources/assets/js/app.js', 'public/js') | ||
.sass('resources/assets/sass/app.scss', 'public/css'); | .sass('resources/assets/sass/app.scss', 'public/css'); | ||
+ | |||
+ | ==js,css使用方法== | ||
+ | <link rel="stylesheet" href="/css/app.css"> | ||
+ | <script src="/js/app.js"></script> | ||
+ | |||
+ | ==本番でjs,cssをブラウザキャッシュをさせない方法== | ||
+ | webpack.mix.js | ||
+ | if (process.env.NODE_ENV === 'production') { | ||
+ | mix.version(); | ||
+ | } | ||
+ | ~.blade.php | ||
+ | <link rel="stylesheet" href="{{ mix('/css/app.css') }}"> | ||
+ | @section('screen-components') | ||
+ | <script src="{{ mix('js/app.js') }}"</script> | ||
+ | @endsection | ||
==参考== | ==参考== |
2018年1月18日 (木) 11:56時点における版
目次
laravel mixとは
laravel用のwebpackのAPIラッパーでlaravel Elixirの後継
laravel5.4以上のプロジェクトを用意
php/laravel/laravel5/インストール [ショートカット]
composer create-project laravel/laravel=5.4.* laravelmix --prefer-dist
laravel mixインストール準備
node,npmをインストール
javascript/nodejs/インストール/nvm [ショートカット]
javascript/nodejs/npmインストール [ショートカット]
node -v npm -v
laravel mixインストール
npm install
laravel5.4には初期で入ってるはずだが、
$ npm list | grep laravel-mix ├─┬ laravel-mix@1.7.2
入っていなければインストール
$ npm install laravel-mix cross-env node-sass --save-dev
package.jsonが更新される
"devDependencies": { + "cross-env": "^5.1.3", + "laravel-mix": "^1.7.2", + "node-sass": "^4.7.2" }
npmコマンド
npm run dev # minifyなしコンパイル npm run watch # 変更ありファイルを監視してコンパイル npm run watch-poll # 変更ありファイルを監視してコンパイル(dockerなど特定の環境) npm run prod # minifyありコンパイル
コマンド詳細はpackage.jsonに記述されている
"scripts": { "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch-poll": "npm run watch -- --watch-poll", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" },
対象js,cssを増やす場合
プロジェクト直下の webpack.mix.js に追加
let mix = require('laravel-mix'); mix.js('resources/assets/js/app.js', 'public/js') .sass('resources/assets/sass/app.scss', 'public/css');
js,css使用方法
<link rel="stylesheet" href="/css/app.css"> <script src="/js/app.js"></script>
本番でjs,cssをブラウザキャッシュをさせない方法
webpack.mix.js
if (process.env.NODE_ENV === 'production') { mix.version(); }
~.blade.php
<link rel="stylesheet" href="テンプレート:Mix('/css/app.css')"> @section('screen-components') <script src="テンプレート:Mix('js/app.js')"</script> @endsection
参考
Laravel mix事始め https://qiita.com/ryosukes/items/24a556b9e634c183f93b
Laravel Mixでwebpackをもっと簡単に使う方法 https://www.webprofessional.jp/use-laravel-mix-non-larav