Laravel vuecli 최단 조리법 (이어서 vuetify 도입)
소개
laravel×vuecli로 정리된 기사가 없었기 때문에 정리했다
요구사항
라고 하는 것도 vuecli에 새로운 기능이 추가되어도 Laravel Mix가 대응하는 것이 늦으면 사용할 수 없다고 하는 단점이 있기 때문에
가능한 한 vue는 독립적으로 laravel에 의존하지 않기를 원합니다.
구성
거꾸로 해설
frontend 디렉토리는 vuecli 프로젝트
frontend에서
npm run build
resources/views/spa/app.blade.php
생성Laravel 프로젝트 만들기
composer create-project laravel/laravel sampleApp --prefer-dist "5.5.*"
Laravel Mix 삭제
이번에는 laravel 초기에 들어있는 Laravel Mix를 사용하지 않으므로 삭제합니다.
rm -rf package.json webpack.mix.js yarn.lock resources/assets
Vue CLI 설치
Vue CLI를 설치하고 Vue CLI를 사용하여 프런트 엔드 프로젝트 만들기
vueRouter 사용
npm install -g @vue/cli
vue create frontend
frontend 디렉토리로 이동
frontend/src/app/로 만들기 위한 작업
cd frontend
mv src app
mkdir src
mv app src
그에 따른 변경
src/app/views/Home.vue 편집
import HelloWorld from "@/app/components/HelloWorld.vue"
vue.config.js 파일 만들기
touch vue.config.js
vue.config.js
module.exports = {
// アセットはLaravelの `public` の `app` ディレクトリ配下に作成されるようにする.
outputDir: '../public/app',
// app配下にjs, cssなどが置かれるので、publicPathを調整する
publicPath: '/app',
pages: {
// appのエントリポイント、テンプレート、出力先を調整
app: {
entry: 'src/app/main.js',
template: 'templates/base.html',
filename: '../../resources/views/spa/app.blade.php',
},
},
};
이제 npm run build
그러면 블레이드 출력과 자산 출력이 발생합니다.
Vue CLI pages
에서 자산 (js, css 등)을 템플릿에 자동 주입하는 설정을 pages.<アプリ名>.template
에서 지정할 수 있습니다.
라라벨 public/index.html
을 자산 주입 템플릿으로 사용
mkdir templates
mv public/index.html templates/base.html
이것으로 vue 측 설정이 완료됩니다.
라라벨의 라우팅을 만나십시오.
컨트롤러 만들기
php artisan make:controller SpaController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SpaController extends Controller
{
public function app()
{
return view('spa/test');
}
}
라우팅도 만지다
routes/web.php
Route::get('/app', 'SpaController@app');
Laravel의 라우팅에 맞게 vueCli의 router.js도 편집합니다.
frontend/src/app/router.js 편집
export default new Router({
mode: 'history',
base: '/test/', // ←修正
지금까지 laravel vuecli의 협력은 끝났습니다.
npm run build
http://vuetest.test/test
이제 vue를 볼 수 있으면 여기까지 성공
이번에는 구현하지 않지만 Vue와 Laravel 사이에서 API 결합은 클래식 axios
번외편(vuetify 도입)
npm install vuetify
base.html의 head에 추가
<link href='https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons' rel="stylesheet">
우선 확인을 위해 App.vue를 vuetify 대응으로 재작성
<template>
<v-app id="inspire">
<v-btn>button</v-btn>
</v-app>
</template>
<script>
export default {
data: () => ({
}),
props: {
source: String
},
methods: {
}
};
</script>
Main.js 편집
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import Vuetify from 'vuetify' // ←追加
import 'vuetify/dist/vuetify.min.css' // ←追加
Vue.use(Vuetify) // ←追加
const vuetify = new Vuetify(); //←追加
Vue.config.productionTip = false
new Vue({
router,
vuetify, //←追加render: h => h(App)
}).$mount('#app')
vuetify의 도입도 간단합니다.
요약
내가 좋아하는 vucli를 그대로 똑같이 laravel에 넣을 수있었습니다.
실제로 회사 업무에서 0에서 프로젝트를 만들지 않기 때문에 좋은 경험이되었습니다.
특히 엔트리 포인트를 의식한 적이 없었기 때문에 배우기가 많았습니다.
참조
Reference
이 문제에 관하여(Laravel vuecli 최단 조리법 (이어서 vuetify 도입)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bokuranokyo/items/1b14852c09395bf99941
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
composer create-project laravel/laravel sampleApp --prefer-dist "5.5.*"
이번에는 laravel 초기에 들어있는 Laravel Mix를 사용하지 않으므로 삭제합니다.
rm -rf package.json webpack.mix.js yarn.lock resources/assets
Vue CLI 설치
Vue CLI를 설치하고 Vue CLI를 사용하여 프런트 엔드 프로젝트 만들기
vueRouter 사용
npm install -g @vue/cli
vue create frontend
frontend 디렉토리로 이동
frontend/src/app/로 만들기 위한 작업
cd frontend
mv src app
mkdir src
mv app src
그에 따른 변경
src/app/views/Home.vue 편집
import HelloWorld from "@/app/components/HelloWorld.vue"
vue.config.js 파일 만들기
touch vue.config.js
vue.config.js
module.exports = {
// アセットはLaravelの `public` の `app` ディレクトリ配下に作成されるようにする.
outputDir: '../public/app',
// app配下にjs, cssなどが置かれるので、publicPathを調整する
publicPath: '/app',
pages: {
// appのエントリポイント、テンプレート、出力先を調整
app: {
entry: 'src/app/main.js',
template: 'templates/base.html',
filename: '../../resources/views/spa/app.blade.php',
},
},
};
이제 npm run build
그러면 블레이드 출력과 자산 출력이 발생합니다.
Vue CLI pages
에서 자산 (js, css 등)을 템플릿에 자동 주입하는 설정을 pages.<アプリ名>.template
에서 지정할 수 있습니다.
라라벨 public/index.html
을 자산 주입 템플릿으로 사용
mkdir templates
mv public/index.html templates/base.html
이것으로 vue 측 설정이 완료됩니다.
라라벨의 라우팅을 만나십시오.
컨트롤러 만들기
php artisan make:controller SpaController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SpaController extends Controller
{
public function app()
{
return view('spa/test');
}
}
라우팅도 만지다
routes/web.php
Route::get('/app', 'SpaController@app');
Laravel의 라우팅에 맞게 vueCli의 router.js도 편집합니다.
frontend/src/app/router.js 편집
export default new Router({
mode: 'history',
base: '/test/', // ←修正
지금까지 laravel vuecli의 협력은 끝났습니다.
npm run build
http://vuetest.test/test
이제 vue를 볼 수 있으면 여기까지 성공
이번에는 구현하지 않지만 Vue와 Laravel 사이에서 API 결합은 클래식 axios
번외편(vuetify 도입)
npm install vuetify
base.html의 head에 추가
<link href='https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons' rel="stylesheet">
우선 확인을 위해 App.vue를 vuetify 대응으로 재작성
<template>
<v-app id="inspire">
<v-btn>button</v-btn>
</v-app>
</template>
<script>
export default {
data: () => ({
}),
props: {
source: String
},
methods: {
}
};
</script>
Main.js 편집
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import Vuetify from 'vuetify' // ←追加
import 'vuetify/dist/vuetify.min.css' // ←追加
Vue.use(Vuetify) // ←追加
const vuetify = new Vuetify(); //←追加
Vue.config.productionTip = false
new Vue({
router,
vuetify, //←追加render: h => h(App)
}).$mount('#app')
vuetify의 도입도 간단합니다.
요약
내가 좋아하는 vucli를 그대로 똑같이 laravel에 넣을 수있었습니다.
실제로 회사 업무에서 0에서 프로젝트를 만들지 않기 때문에 좋은 경험이되었습니다.
특히 엔트리 포인트를 의식한 적이 없었기 때문에 배우기가 많았습니다.
참조
Reference
이 문제에 관하여(Laravel vuecli 최단 조리법 (이어서 vuetify 도입)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bokuranokyo/items/1b14852c09395bf99941
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
npm install -g @vue/cli
vue create frontend
cd frontend
mv src app
mkdir src
mv app src
import HelloWorld from "@/app/components/HelloWorld.vue"
touch vue.config.js
module.exports = {
// アセットはLaravelの `public` の `app` ディレクトリ配下に作成されるようにする.
outputDir: '../public/app',
// app配下にjs, cssなどが置かれるので、publicPathを調整する
publicPath: '/app',
pages: {
// appのエントリポイント、テンプレート、出力先を調整
app: {
entry: 'src/app/main.js',
template: 'templates/base.html',
filename: '../../resources/views/spa/app.blade.php',
},
},
};
mkdir templates
mv public/index.html templates/base.html
php artisan make:controller SpaController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SpaController extends Controller
{
public function app()
{
return view('spa/test');
}
}
Route::get('/app', 'SpaController@app');
export default new Router({
mode: 'history',
base: '/test/', // ←修正
npm run build
npm install vuetify
base.html의 head에 추가
<link href='https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons' rel="stylesheet">
우선 확인을 위해 App.vue를 vuetify 대응으로 재작성
<template>
<v-app id="inspire">
<v-btn>button</v-btn>
</v-app>
</template>
<script>
export default {
data: () => ({
}),
props: {
source: String
},
methods: {
}
};
</script>
Main.js 편집
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import Vuetify from 'vuetify' // ←追加
import 'vuetify/dist/vuetify.min.css' // ←追加
Vue.use(Vuetify) // ←追加
const vuetify = new Vuetify(); //←追加
Vue.config.productionTip = false
new Vue({
router,
vuetify, //←追加render: h => h(App)
}).$mount('#app')
vuetify의 도입도 간단합니다.
요약
내가 좋아하는 vucli를 그대로 똑같이 laravel에 넣을 수있었습니다.
실제로 회사 업무에서 0에서 프로젝트를 만들지 않기 때문에 좋은 경험이되었습니다.
특히 엔트리 포인트를 의식한 적이 없었기 때문에 배우기가 많았습니다.
참조
Reference
이 문제에 관하여(Laravel vuecli 최단 조리법 (이어서 vuetify 도입)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bokuranokyo/items/1b14852c09395bf99941
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Laravel vuecli 최단 조리법 (이어서 vuetify 도입)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bokuranokyo/items/1b14852c09395bf99941텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)