Rumah  >  Artikel  >  hujung hadapan web  >  Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

WBOY
WBOYke hadapan
2022-08-09 15:22:011249semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang javascript, yang terutamanya memperkenalkan isu yang berkaitan dengan konfigurasi devServer untuk mencapai kompilasi masa nyata Webpack-dev-server terutamanya memulakan program menggunakan pelayan Http, mari kita ambil lihatlah, semoga bermanfaat untuk semua.

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]

Setiap kali anda menukar kod Ia perlu dibungkus semula, buka penyemak imbas dan muat semula, yang sangat menyusahkan

Kami boleh memasang dan menggunakan webpackdevserver untuk meningkatkan pengalaman ini

webpack-dev-server terutamanya memulakan pelayan menggunakan pelayan HTTP ekspres. Fungsi utamanya adalah untuk menyampaikan fail sumber. Di samping itu, pelayan dan klien Http ini menggunakan protokol komunikasi websocket Selepas fail asal ditukar, webpack-dev-server akan menyusunnya dalam masa nyata, tetapi fail yang dikompilasi akhir tidak dikeluarkan ke folder sasaran, iaitu yang asal. konfigurasi dalam output kami di bawah : Folder dist dijana selepas pembungkusan, tetapi direktori dist tidak dijana menggunakan pelayan dev

output: {
        path: './dist/js',
        filename: 'bundle.js'
    }

Selepas memulakan perkhidmatan, anda akan mendapati direktori dist telah hilang. Ini kerana devServer menukar modul berpakej Ia tidak akan diletakkan dalam direktori dist, tetapi akan diletakkan dalam memori untuk meningkatkan kelajuan

Pemasangan: npm install webpack-dev-server -D

Ubah suai pakej .json:

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

Kemudian anda boleh laksanakan pelayan npm run untuk memulakan perkhidmatan kami

Konfigurasikan dalam webpack.config .js:

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

Merentas domain: Semasa penyahpepijatan bersama, bahagian hadapan dan bahagian belakang dipisahkan, dan mendapatkan data secara langsung akan merentas domain gunakan nginx untuk memajukan Semasa pembangunan, webpack boleh menangani ini

Senario aplikasi: Kami menggunakan ekspres untuk membuat antara muka dan data sendiri Apabila kami mengakses antara muka ini, masalah merentas domain akan berlaku pengepala respons dalam server.js untuk membenarkan merentas domain. Tetapi kini anda juga boleh menggunakan proksi devServer.

1 Sediakan perkhidmatan nod dan buat server.js dalam direktori akar projek Ambil perkhidmatan penciptaan ekspres sebagai contoh:

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

.

2.webpack.config, konfigurasikan devServer dalam fail js:

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

3. Pasang axios dan perkenalkannya dalam entri fail index.js , gunakan axios untuk meminta data antara muka

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

Penyemak imbas hadapan mendapat hasil:

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

Penggantian Modul Panas (HMR: Penggantian Modul Panas) ialah modul yang disertakan dengan webpack dan tidak memerlukan pemasangan tambahan

Konfigurasikan hmr:

1) Fail konfigurasi Pengepala webpack.config.js memperkenalkan pek web

const webpack = require("webpack");

2) Tambah dalam konfigurasi pemalam:

plugins: [
    new webpack.HotModuleReplacementPlugin()
]

3) Mulakan hmr

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

Konfigurasi di atas tidak berfungsi untuk kemas kini panas js Halaman masih akan dimuat semula apabila menyimpan untuk mencapai kesan kemas kini:

Kami mempunyai dua b.js dan satu. Fail .js

Kembalikan 1 dalam b.js

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

Perkenalkan b.js ke dalam a.js, dan tulis hasil pelaksanaan data b ke halaman sebagai nombor

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

Dalam fail masukan index.js, perkenalkan dan jalankan pelayan npm run (konfigurasi kemas kini panas kami kekal tidak berubah)

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

Kemudian kami membuka halaman, menukar nilai b() 1000 dalam a.js, kemudian ctrl s untuk menyimpan, dan mendapati bahawa nilai hanya boleh dikemas kini selepas halaman dimuat semula. Ini jelas bukan perkara yang kita mahu lihat Untuk kemas kini panas js, kita perlu memantau fail yang akan dilaksanakan dalam fail kemasukan:

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

sebelum menukar nilai dalam a.js Selepas menyimpan, tidak perlu memuat semula halaman, nilai akan dikira sebagai nilai terkini dan dipaparkan pada halaman

Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata

Ringkasan: HMR menyokong kemas kini panas CSS secara lalai, dan memerlukan pemantauan berasingan untuk js

[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web

Atas ialah kandungan terperinci Analisis mendalam konfigurasi devServer untuk mencapai isu kompilasi masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:走看看. Jika ada pelanggaran, sila hubungi admin@php.cn Padam