【筆記】webpack4.0教程_配置詳解_圖文_新手入門_快速上手
前言
這篇筆記會從node安裝開始,到搭建基礎的webpack環境為止。中間每一步的配置和遇到的術語、名詞,我都會做簡單的解釋。
同時,這篇博文是一篇記錄我學習webpack的過程筆記,因為我也在學習過程,如果有記述錯誤之處,歡迎指正。
【注:全程系統環境為 Windows,webpack
版本號:4.8.3
】
一、安裝所需軟體
安裝node
node:node是一種javascript的執行環境,能夠使得javascript脫離瀏覽器執行(不做重點介紹)。
1.開啟下載連結下載安裝包:點選下載
2.安裝好之後開啟
命令提示符
分別輸入
node -v
npm -v
這裡可以看到剛剛安裝的node的版本號和npm的版本號(npm是node的附屬品)
使用 cnpm
npm:npm(Node Package Manager)是一個基於 node
的包管理器。
包:凡是我們在前端專案中引用的檔案,都可稱為包(Package),比如JQuery、Bootstrap、Underscore。通過 npm
我們可以很方便的下載我們需要包的指定版本或者最新版本。我們要使用的 webpack
就是一個包。
cnpm:cnpm是淘寶團隊做的 NPM 映象,為什麼要做使用 cnpm
?因為國內網路從npm
包普遍會很慢,所以要使用 cnpm
- 1.開啟
命令提示符
npm install -g cnpm --registry=https://registry.npm.taobao.org
- 2,檢驗cnpm代替成功:命令列輸入:
cnpm -v
只要不提示 不是內部或外部命令
,就代表你可以使用 cnpm
了。
二、初始化並安裝 webpack
初始化 npm
- 1.選擇一個你準備建立前端專案的目錄,按住
shift
鍵點選滑鼠右鍵—>選擇在此處開啟命令視窗
- 2.輸入
npm init -y
在當前目錄初始化 npm 並且使用預設配置,此時會在該目錄下建立有個npm配置檔案package.json
瞭解 webpack
首先,簡單瞭解一下webpack:先看官網的介紹圖。
webpack:webpack的作用就是把我們專案中所有需要的資源合併打包到一起。官方介紹就是讓一切變得簡單,具體想深入瞭解webpack的特點,推薦閱讀官方文件:
安裝 webpack
這裡,我們需要明確一點,webpack屬於一個npm的包,所以使用npm進行安裝。
- 1.開啟命令視窗,輸入
cnpm install webpack webpack-cli --save-dev
回車後就會在當前目錄下安裝webpack,並且會在該目錄下多出一個資料夾 node_modules
後續,你通過 npm
安裝的所有包都會被放在這個資料夾中。
- 2.開啟
package.json
, 看到有如下三行,就代表以及安裝成功
"devDependencies": {//開發模式
"webpack": "^4.8.3",//外掛名和版本號
"webpack-cli": "^2.1.4"//外掛名和版本號
}
需要補充的是,剛才輸入的 --save-dev
的含義是:
①將所安裝的包分類到開發模式下
②將安裝過的包寫入到 package.json
配置檔案
三、使用 webpack
建立專案並使用 webpack 打包
1.首先,建立如下的目錄結構和檔案
2.其次,每個檔案中的程式碼如下
./index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script src="./dist/main.js"></script>
<!-- src引入的檔案將在接下來由 webpack 打包建立 -->
</body>
</html>
./src/index.js:
import {name} from './init';//引入 init.js 存於 name , (js字尾可以省略)
alert(name);
./src/init.js:
var name = "newApp";
export {//ECMAScript 6 語法 , 向外暴露介面供其他檔案呼叫時使用
name//將變數 name 指定為向外暴露成員
};
- 3.在當前目錄下—>按住
shift
點選滑鼠右鍵—>選擇在此處開啟命令視窗
—>輸入:
npx webpack
這一行的含義是啟用 webpack
進行打包。打包過程中會提醒錯誤,忽略掉就好,這是因為沒有選擇打包模式,雖然提示了錯誤,但 webpack
預設會採取生產者模式打包。
- 4.啟動
index.html
, 此時會在瀏覽器彈出輸出 “newApp”。
至此,我們已經掌握webpack
的安裝-基礎使用。
*【練習 】使用並打包 JQuery
通過這個小練習,目的是為了大家理解包(Package)這個概念,新手往往會在這裡有混淆,同時,還有一個目的就是接觸 es6
語法。
我推薦在看完我這篇筆記後,去了解並熟悉一下 es6
的使用。
- 1.使用
npm
安裝jquery
包。在你專案根目錄下啟動命令視窗
, 輸入
cnpm i jquery --D
這行命令中, i
是 install
的縮寫。 --D
是 --save-dev
的縮寫。
- 2.修改
./src/index.js
裡的內容
import $ from 'jquery';//引入Jquery
$(function(){
$("body").html("Hello <b>world</b>!");
})
- 3.在命令列中輸入
npx webpack
進行打包,然後開啟index.html
,網頁中顯示文字 “Hello world!” 說明jquery
已經使用
練習小結:
- 我們通過
npm
安裝了jquery
和webpack
,這兩個都是npm
的包。 - 包與包之間是平行關係,但對於開發來說,
webpack
是一個工具,jquery
是專案中使用的功能 - 我們使用
webpack
這個包來管理其他的包 (jquery
)
四、深入配置 webpack
學習使用 webpack 配置檔案
我們已經知道,weboack
是一個管理其他包的工具,那麼想要更加靈活自如的管理其它包,我們就需要某些設定,接下來我們來建立配置檔案。
- 1.在專案根目錄建立檔案
webpack.congig.js
const path = require('path');//設定路徑
module.exports = {//配置正式開始
entry: './src/index.js',//設定入口
output: {//設定打包出口
path: path.resolve(__dirname, 'dist'),//打包檔案放在這個目錄下
filename: 'main.js'//打包檔名
},
module: {},//loader 相關配置
plugins:[],//外掛 相關配置
mode: 'development'//設定模式為開發者模式
};
配置項其實也就只有五個,分別是 : 入口 entry
、 出口 output
、Loader loader
、 外掛 plugins
、 模式 mode
入口和出口,分別制定在哪裡尋找專案依賴的資原始檔,把資原始檔打包後放在哪個目錄下面。
外掛:外掛用來增加一些特定功能,比如,程式碼壓縮。再比如,觀察現在的專案,正個打包過程,都沒有 html
檔案參與進來。如果我們希望 html
檔案也參與進來,就需要一個特定外掛 html-webpack-plugin
瞭解並使用 loader
我們不詳細介紹外掛,但 loader
還是要講講。
我們前面提到,webpack
是用來打包專案依賴的資源的,但我們專案中的資源可謂是各式各樣, webpack
預設只認得 js 檔案,想讓其他資原始檔也參與進來,就需要使用 loader
接下來,我們就嘗試用 style-loader
和 css-loader
來處理 css 資源
1.在專案目錄下啟動
命令視窗
, 輸入cnpm i style-loader css-0loader --D
【注】這裡需要註釋一下,無論是loader
還是外掛
,相對npm
來說都是一個包。這裡初學者自己理一下關係,我們到目前為止,用到的jquery
、webpack
、stule-loader
、css-loader
還有將來要用到的webpack
的外掛,都屬於npm
的包。2.修改
webpack
配置檔案webpack.congig.js
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'main.js'
},
module: {//配置 loader
rules: [//相關規則寫在這裡
{
test: /\.css$/,//正則表示式:根據字尾為 .css 的檔案來匹配 css 檔案
use: [//匹配搭配 css 檔案後,打包時使用以下 loader 來處理檔案
{ loader: 'style-loader' },//loader 名稱
{
loader: 'css-loader',//loader 名稱
options: {
modules: true
}
}
]
}
]
},
plugins:[],
mode: 'development'
};
- 3.建立css檔案:
css/main.css
html{
background-color: aqua;
}
此時專案下目錄結構為
- 4/修改 js 入口檔案
src/index.js
import $ from 'jquery';
import '../css/main.css';//引入css檔案
$(function(){
$("body").html("Hello <b>world</b>!");
})
- 5.使用
webpack
進行打包,打包後訪問index.html
,你會看到剛才的樣式已經引用進去了。那麼現在我們已經成功使用loader
讓webpack
能夠識別 css 格式的資原始檔,並且打包到專案中了。
瞭解並使用 watch
watch:啟動 watch
後 webpack
可以監聽檔案變化,當它們修改後會重新編譯。
- 1.打包時在
命令視窗
輸入npx webpack --watch
即可啟動watch
模式。之後再修改資原始檔,webpack
會自動打包。
結束語
本筆記旨在記錄自己學習過程,同時初學者參考本筆記後可以從 node
安裝開始,到搭建可以使用 loader
並自動打包的 webpack
環境。
我使用的 webpack
版本為 4.8.3
因為我也是初學者,如果在筆記中有描述錯誤或者不到位的地方,歡迎指正,我會及時修改的。
๛ก(ー̀ωー́ก)
相關推薦
【筆記】webpack4.0教程_配置詳解_圖文_新手入門_快速上手
前言 這篇筆記會從node安裝開始,到搭建基礎的webpack環境為止。中間每一步的配置和遇到的術語、名詞,我都會做簡單的解釋。 同時,這篇博文是一篇記錄我學習webpack的過程筆記,因為我也在學習過程,如果有記述錯誤之處,歡迎指正。 【注:全程系統環境
【Spring】Spring MVC原理及配置詳解
進行 return sub sca scrip uil 線程安全 松耦合 必須 1.Spring MVC概述: Spring MVC是Spring提供的一個強大而靈活的web框架。借助於註解,Spring MVC提供了幾乎是POJO的開發模式,使得控制器的開發和測試更加簡
【轉】Mybatis Generator最完整配置詳解
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Confi
【筆記】從架構到演算法,詳解美團外賣訂單分配內部機制
1)採用迭代的方式,通過訂單分配優化演算法進行初始的訂單分配,然後通過騎手路徑優化演算法獲取各騎手的最佳行駛路線,進而,訂單分配優化演算法根據騎手路徑優化結果調整分配方案。這兩個層次不斷反覆迭代,最終獲得比較滿意的解 (adsbygoogle = window.adsbygoogle
【筆記】linux下的nginx配置(做動態服務)
上一篇,我們介紹了nginx配置靜態服務的方法(https://blog.csdn.net/oceanyang520/article/details/83107595), 這一篇,我們來介紹動態服務的方法 nginx動態代理,主要是反向代理,這一篇,我們來介紹下如何用域名訪問你的應用。
【筆記】kafka權威指南-常用配置和要點記錄
Kafka 的應用場景 訊息佇列 Kafka有更好的吞吐量,內建的分割槽,冗餘及容錯性,這讓Kafka成為了一個很好的大規模訊息處理應用的解決方案。 行為跟蹤和日誌收集。 敏感操作和日誌,都可以寫到 kafka 裡進行統一,分情況的監控、
【go 語言環境安裝】goland語言環境安裝配置詳解
1、下載go 下載地址: https://golang.google.cn/dl/ 開啟網址,由於我的電腦是win64,所以下載第一個。 2、安裝go 2.1、UNIX/Linux/Mac OS X, 和 FreeBSD 安裝 以下介紹了在UNIX/Linux/Mac OS
【文字檢測】SSD+Tensorflow 300&512 配置詳解
SSD_300_vgg和SSD_512_vgg weights下載連結【需要科學上網~】: Model Training data Testing data mAP FPS VOC07+12+COCO trainval VOC07
【Linux】Linux定時任務Crontab命令詳解
星期幾 ima 默認 定時 最好 表示 時間 path 配置文件 linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是默認啟動的。另 外, 由於使用者自己也可以設置計劃任務,所以, Lin
MySQL官方教程及各平臺的安裝教程和配置詳解入口
www 官方 apt源 nbsp chrom 版本選擇 rom gui apt 官方文檔入口: https://dev.mysql.com/doc/ 一般選擇MySQL服務器版本入口: https://dev.mysql.com/doc/refman/en/
【轉載】linux下的mount命令詳解;
文件的 flag 自動加載 網絡文件系統 解決問題 選項 lock home 多個參數 以下內容來自:http://blog.csdn.net/clozxy/article/details/5299054 http://linux.chinaunix.net/techdo
【轉】 C語言文件操作詳解
pri void rfi 識別 archive format 隨機 stat 文本文 轉自:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html C語言中沒有輸入輸出語句,所有的輸入輸出功能都用
【Android】Android六種布局詳解
spec rec 默認 bottom ron ado 居中 右下角 控制 這篇就對LinearLayout、RelativeLayout、自定義ViewGroup、FrameLayout、TableLayout、AbsoluteLayout六種布局進行詳細的講解。 1
【轉】C++拷貝構造函數詳解
簡單的 之間 其他 創建 變量 tac 動態分配空間 data 產生 一. 什麽是拷貝構造函數 首先對於普通類型的對象來說,它們之間的復制是很簡單的,例如: int a = 100; int b = a; 而類對象與普通對象不同,類對象內部結構一般較為復雜,
【轉載】 c++中static的用法詳解
ostream 並不會 style 轉載 程序員 都是 note 每次 reference 出處: http://blog.csdn.net/majianfei1023/article/details/45290467 C 語言的 static 關鍵字有三種(具體來說是
【shell】Linux shell for 循環詳解
linux shell編程 for循環 運維 for 循環格式 for i in 條件 do 內容 done 實例循環1到10並打印 #!/bin/bash - for i in `seq 10` do echo $i done 版權所有:arppinging
【轉載】Maven依賴中的scope詳解
lan 無需 而已 ref targe 周期 包含 配置 com Maven的一個哲學是慣例優於配置(Convention Over Configuration), Maven默認的依賴配置項中,scope的默認值是compile,項目中經常傻傻的分不清,直接默認了。今天梳
【轉】java的動態代理機制詳解
bar 同時 @override returns 復制 exce ins com hello 在學習Spring的時候,我們知道Spring主要有兩大思想,一個是IoC,另一個就是AOP,對於IoC,依賴註入就不用多說了,而對於Spring的核心AOP來說,我們不但要知道怎
【Python】hasattr() getattr() setattr() 使用方法詳解
att err value ror 綜合 設置 pytho clas rec 本文轉自 https://www.cnblogs.com/cenyu/p/5713686.html hasattr(object, name)判斷一個對象裏面是否有name屬性或者name方法,返
【轉】Oracle 11g Dataguard 參數詳解
異步模式 正常 10g enable ffi sys 過程 tnsnames async 轉自:https://www.jb51.net/article/52269.htm 這篇文章主要介紹了Oracle 11g Dataguard參數詳解,包含了獨立參數、主庫參數、備