Vue CLI是一個Vue.js的全面腳手架工具,它幫助開發(fā)者快速搭建Vue項目所需的基礎(chǔ)結(jié)構(gòu)。其中,它自帶了Webpack。Webpack是一個模塊打包工具,能夠?qū)?yīng)用程序的所有依賴打包成一個或多個文件,這有利于網(wǎng)頁的優(yōu)化,因為瀏覽器可以并行的下載多個小文件,而不是下載一個大文件。
Vue CLI自帶的Webpack能夠幫助開發(fā)者快速創(chuàng)建Vue項目所需的基礎(chǔ)結(jié)構(gòu)。其中包括webpack的配置文件,該文件定義了webpack的編譯規(guī)則,插件和處理器等。這使得開發(fā)者可以更加專注于項目的功能實現(xiàn)而不必關(guān)注Webpack的繁瑣配置及各種問題。
module.exports = { // 入口文件,這里指向的是src目錄下的main.js文件 entry: './src/main.js', // 輸出文件,這里指向的是dist目錄下的bundle.js output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js' }, // 模塊化規(guī)則,用于將ES6以上的ES語法轉(zhuǎn)為瀏覽器可執(zhí)行的代碼 module: { rules: [ { test: /\.js$/, exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'] } } } ] }, // 插件 plugins: [ ... ] }
在Vue CLI自帶的Webpack的配置中,入口文件指向的是src目錄下的main.js文件,這也是我們編寫Vue代碼的主要入口。輸出文件則指向的是dist目錄下的bundle.js文件,所有的應(yīng)用程序代碼都會被打包進bundle.js文件中。模塊化規(guī)則中,我們使用了babel-loader將Es6以上的Es語法轉(zhuǎn)為瀏覽器可執(zhí)行的代碼。其中,在options配置中,我們簡單的使用了@babel/preset-env將Es6轉(zhuǎn)成ES5代碼。在插件中,我們可以使用不同的插件來實現(xiàn)我們需求,如代碼壓縮、代碼熱更新等。
Webpack的優(yōu)點在于它能夠?qū)⒍鄠€文件打包成一個文件,縮小了文件體積,并提高了文件的加載速度。Vue CLI自帶的Webpack提供了一個基礎(chǔ)配置,可以滿足大部分Vue項目的需求,而且也非常友好,易于上手。如果開發(fā)人員需要更復(fù)雜的配置,可以根據(jù)需求進行自定義配置。在項目開發(fā)過程中,Vue CLI自帶的Webpack可以大大的提高我們的開發(fā)效率,令我們更專注于功能開發(fā),而不必過多關(guān)注Webpack的配置及問題。