<strike id="g3zqm"></strike>

      <cite id="g3zqm"></cite>

        <tr id="g3zqm"><center id="g3zqm"></center></tr>
        <pre id="g3zqm"><sup id="g3zqm"></sup></pre>
        <li id="g3zqm"></li>
      1. 少妇高潮激情一区二区三,免费av深夜在线观看,亚洲狼人久久伊人久久伊,久久精品人人做人人爽电影蜜月,黄色特级片一区二区三区,欧美日韩在线亚洲二区综二,极品少妇无套内射视频,日本极品少妇videossexhd

        【Vue】webpack的基本使用

        2023-1-3    前端達人

        webpack的學習目標

        1. 理解什么是前端工程化
          • 轉變對前端開發的認知
        2. 了解webpack的基本用法
          • 為后面Vue和React課程的學習做技術儲備
        3. 不強制要求大家能手動配置 webpack
          • 一定要知道webpack在項目中有什么作用
          • 清除webpack中的核心概念

        前端工程化

        小白眼中的前端開發 vs 實際的前端開發

        1. 小白眼中的前端開發
          • 會寫HTML + CSS +JavaScript就會前端開發
          • 需要美化頁面樣式,就拽一個bootstrap過來
          • 需要操作DOM或發起Ajax,再拽一個jquery過來
          • 需要快速實現網頁布局效果,就拽一個Layui過來
        2. 實際的前端開發
          • 模塊化(js的模塊化,css的模塊化,資源的模塊化)
          • 組件化(復用現有的UI結構,樣式,行為)
          • 規范化(目錄結構的劃分,編碼規范化,接口規范化,文檔規范化,Git分支管理)
          • 自動化(自動化構建,自動部署,自動化測試)

        什么是前端工程化

        前端工程化指的是:在企業級的前端項目開發中,把前端開發所謂的工具,技術,流程,經驗等進行規范化,標準化。
        企業中的Vue項目和React項目,都是基于工程畫的方式進行開發。

        好處:前端開發自成體系,有一套標準的開發方案和流量。

        前端工程化的解決方案

        1. 早期的前端工程化解決方案
          • grunt
          • gulp
        2. 目前主流的前端工程化解決方案
          • webpack
          • parcel

        webpack的基本使用

        什么是webpack

        概念: webpack是前端項目工程化的具體解決方案。

        主要功能:它提供了友好的前端模塊化開發支持,以及代碼壓縮混淆,處理瀏覽器端JavaScript的兼容性性能優化等強大的功能。

        好處:讓程序員把工作的重心放到具體功能的實現上,提高了前端開發效率和項目的可維護性。

        注意:目前Vue,React等前端項目,基本上都是基于webpack進行工程化開發的。

        列表隔行變色項目

        步驟

        1. 新建項目空白目錄,并運行npm init -y命令,初始化包管理配置文件package.json
        2. 新建src源代碼目錄
        3. 新建src->index.html首頁和src->index.js腳本文件
        4. 初始化首頁基本的結構
        5. 運行npm install jquery -s命令,安裝jQuery
        6. 通過ES6模塊化的方式導入jQuery,實現列表隔行變色的效果
          在這里插入圖片描述
        <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> ul>li{這是第$個li}*9 </body> </html>  
                
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12

        在這里插入圖片描述

        在這里插入圖片描述
        import和require導入模塊的區別
        1、require對應導出的方法是module.exports,
        import對應的方法是export default/export

        2、require 是CommonJs的語法
        import 是 ES6 的語法標準。

        3、require是運行運行時加載模塊里的所有方法(動態加載),
        import 是編譯的時候調用(靜態加載),不管在哪里引用都會提升到代碼頂部。

        4、require 是CommonJs的語法,引入的是的是整個模塊里面的對象,
        import 可以按需引入模塊里面的對象

        5、require 導出是值的拷貝,
        import 導出的是值的引用
        6. require是node.js帶有的 CommonJS語法里的東西,可以在終端中運行
        如果要在瀏覽器端運行 我們要使用import這個es6語法
        js代碼

        //導入模塊 // const $ = require('jquery') import $ from "jquery"; //定義jquery入口函數 $(function () { $('li:odd').css('background-Color', 'red') $('li:even').css('background-Color', 'pink') })  
                
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9

        將js文件導入index.html之后,發現沒有效果,這時我們就需要webpack工具了,將語法進行重新編譯,把es6語法轉化為es5語法。

        在項目中安裝并配置webpack

        npm i webpack@5.42.1 webpack-cli -D  
                
        • 1

        生產依賴
        在這里插入圖片描述
        創建webpack.config.js配置文件并寫入
        在這里插入圖片描述

        //使用node.js的導出語法向外導出一個webpack的配置對象 //導入模塊并進行導出內容,這樣寫會比直接導出內容多一個記錄信息的txt文件,當然我們也可以使用es6語法進行導入導出,大家可以私下去了解。 const { Module } = require("webpack"); Module.export = { mode: 'development' } //也可以直接導出內容 // module.export = { //     mode: 'development' // }  
                
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11

        在package.json配置文件中的script中寫入聲明

        在這里插入圖片描述

        最后執行npm命令進行編譯,有一個注意點就是node.js版本需要是17版本以下的不然會出錯,當然應該有其他解決辦法,但博主不會,只好退回版本
        執行 npm run dev 這個命令,可以看到src里的index.js和jquery.js都被壓縮了。
        在這里插入圖片描述
        會生成一個編譯后的文件夾
        在這里插入圖片描述
        將main.js文件導入index.html.,不用導入index.js。
        在這里插入圖片描述
        打開頁面就可以成功顯示了
        在這里插入圖片描述
        mode的可選值
        mode節點的可選值有兩個,分別是:

        1. development
          • 開發環境
          • 不會對打包生成的文件進行代碼壓縮和性能優化
          • 打包速度快,適合在開發階段使用。
        2. production
          • 生產環境
          • 會對打包生成的文件進行代碼壓縮和性能優化
          • 打包速度很慢,僅適合在項目發布階段使用
            開發的時候使用development,打包速度快,上線的時候使用production,體積小。

        webpack.config.js的作用

        當我們使用npm run dev這個命令的時候,會執行package里的dev里的內容,在這里插入圖片描述
        dev里寫的webpack,那么它就會執行weboack.config.js這個文件里的內容,根據里面的內容再進行打包。
        在這里插入圖片描述
        webpack中的默認約定

        大家可能有個疑問,就是打包的時候為什么會打包index.js這個文件,它是怎么尋找的路徑等問題。

        在webpack4和5的版本中,有如下的默認約定,找不到就會報錯。

        1. 默認的打包入口文件為src -> index.js
        2. 默認的輸出文件路徑為dist -> main.js
          在這里插入圖片描述

        注意:可以在webpack.config.js中修改打包的默認約定。

        自定義打包的入口和出口

        在webpack.config.js配置文件中,通過entry節點指定打包的入口,通過output節點指定打包的出口文件夾和出口文件。

        // 使用node.js的導出語法向外導出一個webpack的配置對象 const path = require("path"); module.exports = { mode: 'development', entry: path.join(__dirname, 'src/index.js'), //設置打包輸出路徑,以及輸入文件名稱 output: { //指定存放目錄 path: path.join(__dirname, 'dist1'), filename: 'new.js' } }  
                
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13

        生成的文件就變了。
        在這里插入圖片描述

        webpack中的插件

        當我們修改js文件之后,需要重新打包才能有效,每修改一次都要重新打包一次,這就很麻煩我們可以 通過安裝和配置第三方的插件,可以擴展webpack的能力,從而讓webpack用起來更方便,常用的webpack插件有如下兩個:

        1. webpack-dev-server
          • 類似于node.js階段用到的nodemon工具。
          • 每當修改了源代碼,webpack會自動進行項目的打包和構建。
        2. html-webpack-plugin
          • webpack中的html插件(“類似于一個模板引擎插件”),
          • 可以通過此插件自定制index.html頁面的內容。

        webpack-dev-server

        安裝webpack-dev-server

        安裝命令
        npm install webpack-dev-server@3.11.2 -D  
                
        • 1
        • 2

        配置webpack-dev-server

        1. 重新配置package.json中的script里的dev內容
          在這里插入圖片描述
        2. 再次運行 npm run dev命令,重新進行項目打包
        3. 在瀏覽器中訪問本地8080端口,查看自動打包效果。

        注意:webpack-dev-server會啟動一個實時打包的http服務器。
        在這里插入圖片描述
        這樣當我們每次修改index.js文件時,保存后就會自動打包,摁兩次ctrl+c就可以終止運行。

        這種打包實際上時虛擬打包,并不是每次保存打包之后將main.js進行了修改,當我們修改代碼保存自動打包之后,我們發現頁面UI并沒有變化,那是因為main.js實際上沒有修改,訪問自動打包修改后的頁面需要訪問本地8080端口在這里插入圖片描述
        在這個http服務器內才能訪問到修改后的內容,我們前面說了修改后的js并沒有保存到main.js中,那它保存到哪里去了?它其實被保存到了根目錄中,以內存的形式進行了保存。在這里插入圖片描述
        文件名跟你前面設置的打包文件名一樣,雖然看不到這個文件但是可以進行訪問,我們需要把頁面引入鏈接從 new.js改成新生成的保存到內存中的new.js,完成這兩個步驟就可以真正的實現自動打包并實時演示了。在這里插入圖片描述

        html-webpack-plugin

        當我們開啟了自動打包服務功能,訪問服務器后,顯示的是根目錄,需要點擊一下文件夾,才能顯示頁面文件index.html,我們只需要把頁面文件copy一份兒到根目錄,這樣點開網頁就能直接顯示,這個webpack插件就可以實現相應的功能。

        安裝

        npm install html-webpack-plugin@5.3.2 -D  
                
        • 1

        使用代碼

        //導入相應模塊 const HtmlPluginConfig = require('html-webpack-plugin') //實例化 const HtmlPlugin = new HtmlPluginConfig(); //實例化 const HtmlPlugin = new HtmlPluginConfig({ //被復制文件的路徑 template: './src/index.html', //復制到哪 filename: './index.html' });  
                
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15

        最后再向外暴露對象

         //插件的數組,將來webpack在運行時,會加載并調用這些插件 plugins: [HtmlPlugin] //將實例化對象寫入。  
                
        • 1
        • 2

        執行 npm run dev命令,進行自動打包,然后進入本地8080端口網頁,就可以直接看到頁面了。
        在這里插入圖片描述
        當你修改js之后也會實時更新。

        注意點以及個人建議和理解
        我們可以在scripts里設置兩個屬性,dev是用來開發實時瀏覽觀看內容的,dev2是用來進行物理打包的(當你完成項目需要打包的時候)。
        在這里插入圖片描述
        這里我需要說一下html-webpack-plugin這個插件,上面我們可以直接看到頁面是因為這個插件復制了一份兒index.html到根目錄所以可以直接訪問。
        這個插件里面 有個屬性叫filename,就是你將文件復制到什么位置。
        在這里插入圖片描述
        兩個注意點

        第一個就是它的值,屬性值寫的相對路徑是根據你打包文件的位置為基準的,并不是webpack.config.js的文件位置,./就跟你的new.js文件在同一個文件夾里,…/就在new.js的上級文件夾里,所以當你打包的時候會發現除了new.js之外還有index.html

        第二個就是輸出方式,如果執行的是dev2,那么就跟new.js進行物理復制,如果執行的是dev那么就跟new.js一樣,以內村存儲的方式進行保存。

        生成的html文件里會自動導入同時打包的js文件
        在這里插入圖片描述

        devServer節點

        在webpack.config.js配置文件中,可以通過devServer節點對webpack-dev-server插件進行更多配置。
        其中有一些屬性設置可以更方便我們進行開發。

         devServer: { open: true, //打包完成后默認打開瀏覽器 port: 8080,//修改端口號 host: '127.0.0.1' //修改主機地址 }  
                
        • 1
        • 2
        • 3
        • 4
        • 5
        文章已被收錄至官方知識檔案







        轉自 csdn



        藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加藍小助,微信號:ben_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系01063334945。


        分享此文一切功德,皆悉回向給文章原作者及眾讀者.
        免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。


        藍藍設計m.hengshangtqd.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司

        日歷

        鏈接

        個人資料

        藍藍設計的小編 http://m.hengshangtqd.cn

        存檔

        主站蜘蛛池模板: 99久久婷婷国产综合精品青草漫画| 亚洲午夜福利精品无码不卡| 在线播放国产女同闺蜜| 日本不卡码一区二区三区| 亚洲无码网| 国产亚洲人成无码网在线观看| 成午夜精品一区二区三区| 高清无码午夜福利视频| 精品国产一区二区三区大| 国产v片在线播放| 伊人色亚洲| 99热这里只有精品免费播放| 免费午夜无码片在线观看影院 | 2025av在线| 无码射肉在线播放视频| 亚洲区一区二| 精品人妻伦一二三区久久aaa片| 黄色av网站在线观看| 成人乱码一区二区三区av| 国产精品三级中文字幕| 精品人妻一区二区三区阅读全文| 亚洲精品一区国产精品| 欧美性猛交一区二区三区| 日韩欧美中文亚洲高清在线| 69精品人人人| 亚洲天堂精品一区二区| 亚洲高潮喷水无码AV电影| 国产欧美VA欧美VA在线| jizzjizzjizzjizz| 日本久久久久亚洲中字幕| 日韩在线导航| 狠狠色噜噜狠狠狠狠色综合网| 亚洲国产精品一二三四区| 国产精品免费AⅤ片在线观看 | 久热最新精品视频在线观看| 久久99免费麻辣视频| 欧美和黑人xxxx猛交视频| 亚洲综合伊人久久大杳蕉| 91视频播放| 国产日韩AV免费无码一区二区三区| 九一福利社区|