您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)如何使用webpack打包一個(gè)庫library的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
初始化庫
mkdir library cd library npm init -y
經(jīng)過以上步驟后會(huì)生成一個(gè)library文件夾,里面包含一個(gè)package.json文件。然后簡(jiǎn)單修改為如下所示:
{ "name": "library", "version": "1.0.0", "description": "", "main": "./dist/library.js", "scripts": { "build": "webpack" }, "keywords": [], "author": "rocky", "license": "MIT" }
簡(jiǎn)單創(chuàng)建幾個(gè)文件
在根目錄下新建src文件夾,新建一個(gè)math.js和string.js。相關(guān)文件內(nèi)容如下:
// math.js export function add(a,b){ return a+b; } export function minus(a,b){ return a-b; } export function multiply(a,b){ return a*b; } export function division(a,b){ return a/b; }
// string.js export function join(a,b){ return a+" "+b; }
繼續(xù)新建一個(gè)index.js
import * as math from "./math"; import * as string from "./string"; export default {math,string}
簡(jiǎn)單安裝webpack依賴
npm install webpack webpack-cli --save
安裝的同時(shí),可以創(chuàng)建webpack配置文件webpack.config.js,如下配置:
const path = require("path"); module.exports={ mode:"production", entry:"./src/index.js", output:{ path:path.resolve(__dirname,"dist"), filename:"library.js", library:"library",// 在全局變量中增加一個(gè)library變量 libraryTarget:"umd" } }
安裝成功后,執(zhí)行打包命令
npm run build
之后會(huì)在根目錄下生成一個(gè)dist文件夾,里面包含一個(gè)library.js。
如何使用呢?
如果別人要使用這個(gè)打包后的library.js的話,可能會(huì)有如下幾種方式:
// es6方式 import library from "library" // commonjs方式 const library=require("library") // AMD方式 require(["library"],function(){}) // script標(biāo)簽引入 <script src="library.js"></script>
在dist文件夾里創(chuàng)建一個(gè)index.html,用script引入之前打包生成的library.js。瀏覽器打開index.html,在控制臺(tái)中輸入library,會(huì)得到如下所示的結(jié)果:
一個(gè)簡(jiǎn)單的庫便打包生成了。
注解:webpack中l(wèi)ibraryTarget配置項(xiàng)可以設(shè)為umd,表示采用umd規(guī)范,如果設(shè)置為this,表示在this下掛載了一個(gè)library變量。更多用法可參考webpack官網(wǎng)。
引入別的庫用法
假設(shè)需要引入lodash.安裝lodash
npm install lodash --save
修改之前創(chuàng)建的string.js
import _ from "lodash"; export function join(a,b){ // return a+" "+b; return _.join([a,b]," "); }
運(yùn)行打包命令,發(fā)現(xiàn)打包出來的庫體積變大了,因?yàn)槲覀円肓薼odash,導(dǎo)致包變大。怎么辦呢?修改webpack配置文件。
增加一個(gè)externals配置項(xiàng):
const path =require("path"); module.exports={ mode:"production", entry:"./src/index.js", externals:["lodash"],// 配置不打包文件 output:{ path:path.resolve(__dirname,"dist"), filename:"library.js", library:"library", libraryTarget:"umd" } }
之后打包就會(huì)發(fā)現(xiàn)庫的體積又變小了。
感謝各位的閱讀!關(guān)于“如何使用webpack打包一個(gè)庫library”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。