php - Bagaimana untuk menyelesaikan modularisasi laravel dan penyelesaian webpack+vue.js?
phpcn_u1582
phpcn_u1582 2017-06-23 09:11:17
0
1
698

Baru-baru ini, projek syarikat memerlukan penggunaan baldi keluarga vue + elemen-ui untuk membangunkan bahagian belakang, tetapi projek asal telah ditulis oleh requirejs, jadi semua modul laravel boleh dipasang dan dinyahpasang secara bebas, yang bermaksud js dan css mereka adalah semuanya bebas, dan yang awam itu diletakkan terus dalam direktori tema Kemudian timbul persoalan, bagaimanakah program satu halaman melaksanakan penyelesaian ini themes/backend
(Nota: Modul di sini adalah modul laravel, bukan. modul js dan npm )

  1. Setiap modul dipasang secara berasingan Selepas pemasangan,

    dalam modul penerbitan automatik boleh dimuatkan secara automatik (Resources/Bakcend/assets目录到public/backend/modules/模块名下面,并且在themes/bakcend/index.blade.phpdiselesaikan)

    .
  2. Hujung belakang halaman tunggal dibungkus menggunakan pek web, dan direktori pembungkusan

    s berada di bawah (public/backend/modules/模块名下面,并在打包后自动复制一份到modules/模块名/Resources/Bakcend/assetdiselesaikan)

  3. Setiap modul boleh mempunyai menu bahagian belakang sendiri, antara muka pengurusan, dsb., dan ini semua dilaksanakan dengan vue, vue-router, element-ui Halaman kemasukan semua modul terletak di

    , (themes/backend_default/index.blade.phpdiselesaikan). 4. Setiap Modul boleh dibangunkan oleh pihak ketiga yang berbeza dan diterbitkan ke pusat modul umum Pengguna boleh memuat turun modul yang diperlukan sendiri (
    Halaman belakang PHP telah diselesaikan, tetapi JS bahagian hadapan menghadapi masalah)

    .
Masalah timbul dalam aspek bahagian hadapan keperluan keempat di atas Jika individu atau pasukan dalaman membangunkan semua modul, tidak akan ada masalah sedemikian, tetapi pembangunan pihak ketiga yang berbeza akan menyebabkan masalah pembungkusan webpack.

Pada masa ini terdapat dua penyelesaian, tetapi kedua-duanya tidak dapat menyelesaikan masalah secara asasnya

Yang pertama ialah

setiap modul laravel dibungkus secara berasingan

, tetapi perpustakaan kelas awam tidak boleh diproses, kerana adalah mustahil untuk bahagian belakang satu halaman untuk menjana vendor.js untuk setiap modul dan meletakkannya awam atau meletakkan perpustakaan kelas awam ke dalam aplikasi js, supaya vendor.js dan app.js setiap modul (modul blog, modul teras, modul papan pemuka, dll.) yang dimuatkan dalam jumlah akan memuatkan perpustakaan kelas awam ini berulang kali

Yang kedua ialah pembungkusan bersepadu di bawah tema/tema belakang
Sumber setiap modul diletakkan themes/backend/modules/{module-name}里面,打包后自动抽取到各自的module/Resources/Backend/assets中,然后别人安装module的时候自动publish这个module里面的assetspublic/backend/modules/{module-name}目录里,但是这样也不行,因为如果每个开发者负责的module不同,所以在webpack.config.js or webpack.mix.js里打包的东西也是不同的,比如我写blog module的app.js,你写 dashboard module的app.js,那么各自打包后的assets生成的vendor.js(fail disimpan dalam perpustakaan kelas awam) dengan id modul pek web yang berbeza (walaupun kelas awam app.js bagi semua modul adakah perpustakaan adalah sama), selepas diterbitkan, memuatkan app.js modul berbeza akan menyebabkan ralat, kerana vendor.js setiap modul adalah berbeza dan anda tidak boleh memilih mana-mana untuk dimuatkan

Bagaimana untuk menyelesaikan masalah ini secara khusus?

phpcn_u1582
phpcn_u1582

membalas semua(1)
阿神

Rujukan: /a/11...
Aplikasi web satu halaman SPA berdasarkan Mekanisme pek web untuk memuatkan pemalam secara dinamik

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!