最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用webpack打包一個庫library的方法步驟

 更新時間:2019年12月18日 09:17:08   作者:rocky191  
這篇文章主要介紹了如何使用webpack打包一個庫library的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

日常我們開發(fā)了一個庫之后,如何打包之后提供給別人使用呢?如果你不清楚,就繼續(xù)看吧!?。?/p>

初始化庫

mkdir library
cd library
npm init -y

經(jīng)過以上步驟后會生成一個library文件夾,里面包含一個package.json文件。然后簡單修改為如下所示:

{
 "name": "library",
 "version": "1.0.0",
 "description": "",
 "main": "./dist/library.js",
 "scripts": {
  "build": "webpack"
 },
 "keywords": [],
 "author": "rocky",
 "license": "MIT"
}

簡單創(chuàng)建幾個文件

在根目錄下新建src文件夾,新建一個math.js和string.js。相關文件內(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ù)新建一個index.js

import * as math from "./math";
import * as string from "./string";

export default {math,string}

簡單安裝webpack依賴

npm install webpack webpack-cli --save

安裝的同時,可以創(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",// 在全局變量中增加一個library變量
    libraryTarget:"umd"
  }
}

安裝成功后,執(zhí)行打包命令

npm run build

之后會在根目錄下生成一個dist文件夾,里面包含一個library.js。

如何使用呢?

如果別人要使用這個打包后的library.js的話,可能會有如下幾種方式:

// es6方式
import library from "library"

// commonjs方式
const library=require("library")

// AMD方式
require(["library"],function(){})

// script標簽引入
<script src="library.js"></script>

在dist文件夾里創(chuàng)建一個index.html,用script引入之前打包生成的library.js。瀏覽器打開index.html,在控制臺中輸入library,會得到如下所示的結(jié)果:

一個簡單的庫便打包生成了。

注解:webpack中l(wèi)ibraryTarget配置項可以設為umd,表示采用umd規(guī)范,如果設置為this,表示在this下掛載了一個library變量。更多用法可參考webpack官網(wǎng)。

引入別的庫用法

假設需要引入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]," ");
}

運行打包命令,發(fā)現(xiàn)打包出來的庫體積變大了,因為我們引入了lodash,導致包變大。怎么辦呢?修改webpack配置文件。
增加一個externals配置項:

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"
  }
}

之后打包就會發(fā)現(xiàn)庫的體積又變小了。

以上就是一個簡單打包庫的過程,打包完成后,就可以使用npm相關命令將庫發(fā)布到npm倉庫,發(fā)布成功后,就可以讓別的小伙伴使用了。當然在實際情況中,打包一個庫的話,需要做的還有很多,比如tree-shaking,優(yōu)化方面的東西,我也正在逐漸學習中!

參考資料

webpack output libraryTarget
webpack external

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 地址欄傳遞中文參數(shù)亂碼在js里用escape轉(zhuǎn)碼

    地址欄傳遞中文參數(shù)亂碼在js里用escape轉(zhuǎn)碼

    亂碼,頭大的一件事可以考慮轉(zhuǎn)碼方式不直接傳中文,在js里用escape轉(zhuǎn)碼,具體實現(xiàn)如下,有類似情況的朋友可以參考下
    2013-08-08
  • JavaScript 中斷請求幾種方案詳解

    JavaScript 中斷請求幾種方案詳解

    這篇文章主要介紹了JavaScript 中斷請求幾種方案詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 原生JS:Date對象全面解析

    原生JS:Date對象全面解析

    下面小編就為大家?guī)硪黄鶭S:Date對象全面解析。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • chatGPT前端流式輸出js實現(xiàn)三種方法—fetch、SSE、websocket

    chatGPT前端流式輸出js實現(xiàn)三種方法—fetch、SSE、websocket

    項目需要接入chatgpt提供的api,后端返回流式的字符,前端接收并實時顯示,在JavaScript中,使用Stream流通常指的是處理數(shù)據(jù)流的一種方式,它們允許數(shù)據(jù)被處理成塊,而不是一次性處理整個數(shù)據(jù)集,這對于處理大量數(shù)據(jù)或者來自網(wǎng)絡請求的數(shù)據(jù)非常有用,
    2024-07-07
  • js 巧妙去除數(shù)組中的重復項

    js 巧妙去除數(shù)組中的重復項

    最近, 我在看YAHOO.util.YUILoader類的源碼, 其中有個排除數(shù)組重復項的方法, 讓我覺得甚為巧妙, 這里分享下…
    2010-01-01
  • js更優(yōu)雅的兼容

    js更優(yōu)雅的兼容

    對于JS框架開發(fā)中的客戶端(瀏覽器)兼容難題,各位想必都不陌生。平常,我們都用if去面對接口不一致以及成堆的bug。然而,這里介紹的方法卻可以讓兼容更加優(yōu)雅。
    2010-08-08
  • js獲取html頁面代碼中圖片地址的實現(xiàn)代碼

    js獲取html頁面代碼中圖片地址的實現(xiàn)代碼

    這篇文章主要介紹了js獲取html代碼中圖片地址的實現(xiàn)代碼,需要的朋友可以參考下
    2018-03-03
  • JS實現(xiàn)iframe編輯器光標位置插入內(nèi)容的方法(兼容IE和Firefox)

    JS實現(xiàn)iframe編輯器光標位置插入內(nèi)容的方法(兼容IE和Firefox)

    這篇文章主要介紹了JS實現(xiàn)iframe編輯器光標位置插入內(nèi)容的方法,可實現(xiàn)文本與圖片的插入功能,并兼容IE和Firefox瀏覽器,需要的朋友可以參考下
    2016-06-06
  • JS分別利用分頁加載和懶加載預覽PDF

    JS分別利用分頁加載和懶加載預覽PDF

    在開發(fā)過程中,我們經(jīng)常會遇到預覽PDF的需求,這篇文章主要為大家詳細介紹了JS如何利用分頁加載和懶加載預覽PDF,希望對大家有所幫助
    2024-01-01
  • 詳解JavaScript的函數(shù)簡介

    詳解JavaScript的函數(shù)簡介

    這篇文章主要為大家介紹了JavaScript的函數(shù)簡介,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11

最新評論

周口市| 谷城县| 日喀则市| 武汉市| 达州市| 当涂县| 内丘县| 西林县| 柳州市| 扎鲁特旗| 南雄市| 永平县| 灌南县| 增城市| 依安县| 东丰县| 女性| 广灵县| 琼中| 延边| 宜兰县| 黎平县| 深水埗区| 北票市| 军事| 张家界市| 那坡县| 花莲县| 津市市| 章丘市| 正安县| 兰坪| 宣恩县| 抚顺县| 东源县| 东方市| 长寿区| 呼图壁县| 保亭| 加查县| 登封市|