반응형
Laravel 5.6 - Laravel-mix를 사용한 vuejs 코드 분할
나는 내 코드에서 코드를 분리하려고 한다.vue
파일을 특정 경로에서만 사용된 작은 파일로 만듭니다.
예를 들어, 나는mobile.vue
사용자가 모바일 장치를 사용할 때만 표시되는 구성 요소.
처음에, 코드를 분할하지 않으면 이렇게 할 수 있습니다.vue component
안으로app.js
:
require('./bootstrap');///typical for laravel to have a bootstrap.js for other pages.
window.Vue = require('vue');
Vue.component('v-mobile', require('./components/MobileComponent.vue'));
require('./bootstrap');
window.Vue = require('vue');
Vue.component('v-mobile', (resolve) => {
import(/* webpackChunkName: "/js/v-mobile" */'./components/MobileComponent.vue')
.then((MobileComponent) => {
resolve(MobileComponent.default);
});
});
다른 패키지는 따로따로 나눠서webpack.mix.js
:
let mix = require('laravel-mix');
mix.js('resources/assets/js/app.js', 'public/js')
.extract(['jquery', 'vue', 'axios'])
.sass('resources/assets/sass/app.scss', 'public/css');
나처럼nom run watch
, 나는 나의 것을 볼 수 있다.v-mobile
sputed out:
그런데 페이지를 실행했을 때 에러가 발생했습니다.vendor.js
:
미포함(약속)TypeError: 정의되지 않은 속성 '_esModule'을 읽을 수 없습니다.
나는 에 대해 꽤 초보입니다.webpack
여기 뭐가 문제인 것 같아?어떻게 하면 해결할 수 있을까요?
해결책을 찾았어요.
알고 보니, 우리는 이 모든 것을 망칠 필요가 없다.webpack
우선, 인스톨 할 필요가 있습니다.babel-plugin-syntax-dynamic-import
.
그럼 그냥...app.js
, 다음 행을 변경합니다.
Vue.component('vmobile', require('./components/MobileComponent.vue'));
대상:
const vmobile = ()=> import(/* webpackChunkName: "./js/vmobile" */'./components/MobileComponent.vue')
언급URL : https://stackoverflow.com/questions/51530306/laravel-5-6-vuejs-code-splitting-with-laravel-mix
반응형
'programing' 카테고리의 다른 글
Nuxt의 구성 API에서 vuex 맵 도우미를 사용하는 방법 (0) | 2022.07.17 |
---|---|
Linux 커널의 container_of 매크로 이해 (0) | 2022.07.17 |
라우터 뷰에서 동일한 컴포넌트 간의 Vue 전환이 다시 마운트/생성되지 않음 (0) | 2022.07.17 |
POSIX 시스템에서는 argc를 0으로 할 수 있습니까? (0) | 2022.07.17 |
vue2 plus vee-validate - ES6 없이 오류 메시지를 커스터마이즈하려면 어떻게 해야 합니까? (0) | 2022.07.10 |