Webpack 10分钟入门
可以說(shuō)現(xiàn)在但凡開發(fā)Single page application,webpack是一個(gè)不可或缺的工具。
WebPack可以看做是一個(gè)模塊加工器,如上圖所示。它做的事情是,接受一些輸入,經(jīng)過(guò)加工產(chǎn)生一些輸出。
輸入是我們web前端項(xiàng)目的模塊文件,通常情況下這些文件都不能直接被瀏覽器的JavaScript執(zhí)行引擎所執(zhí)行。
輸出是經(jīng)過(guò)webpack加工后的能被瀏覽器使用的javascript和靜態(tài)資源文件。比如ES6的js轉(zhuǎn)成ES5的js,CSS預(yù)處理器文件轉(zhuǎn)成CSS文件等等。
我們來(lái)動(dòng)手做一個(gè)具體的例子。這個(gè)例子只花費(fèi)10分鐘時(shí)間,就能讓我們熟悉webpack的基本用法。
1. 新建一個(gè)文件夾,首先用npm init命令創(chuàng)建一個(gè)package.json:
在下面使用命令行npm install --save-dev webpack,安裝webpack并保存到項(xiàng)目的package.json的devDependencies下面。
花了一分鐘才執(zhí)行完畢。
執(zhí)行完畢后,檢查package.json, 發(fā)現(xiàn)webpack出現(xiàn)在devDependencies區(qū)域里。
此時(shí)項(xiàng)目文件夾層次結(jié)構(gòu)如下圖:
2. 新建一個(gè)index.html文件,輸入以下內(nèi)容:
<html><div id="app"></div><script src="./dist/bundle.js"></script></html>從源代碼看出,這個(gè)html引用了一個(gè)webpack打包之后生成的輸出文件。
既然是模塊化開發(fā),我們就新建一個(gè)模塊,實(shí)現(xiàn)文件放在print.js里:
function print(content){window.document.getElementById("app").innerText = "Hello," + content;}module.exports = print;這個(gè)模塊就實(shí)現(xiàn)了一個(gè)print函數(shù),把傳入的字符串顯示在index.html的id為app的div標(biāo)簽里。
有了module后,我們還需要執(zhí)行這個(gè)module。為此,新建一個(gè)main.js文件,輸入下列內(nèi)容:
const print = require("./print.js");print("Jerry");最后,我們得生成index.html使用到的bundle.js文件。為此,我們要給webpack定義一個(gè)任務(wù),通過(guò)新建文件webpack.config.js完成。
entry字段定義了webpack的輸入:main.js, 輸出則放在當(dāng)前目錄dist下面的bundle.js里。
const path = require("path");module.exports = {entry: "./main.js",output: {filename: "bundle.js",path: path.resolve(__dirname, "./dist"),},mode: 'development' // 設(shè)置mode};至此,webpack_demo文件夾下的資料看起來(lái)是這樣的:
執(zhí)行命令行webpack:
執(zhí)行完webpack后,打開index.html, 看到了我們期望中的Hello Jerry:
至此,一個(gè)最簡(jiǎn)單的webpack例子就跑通了。
要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的Webpack 10分钟入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 奇瑞公布3月销量快报:销售12.5万辆
- 下一篇: SAP Fiori里两种锁机制(lock