如何使用webpack打包一个库library,使用webpack打包sdk.

简介: 如何使用webpack打包一个库library,使用webpack打包sdk.

如何使用webpack打包一个库library


用webpack打包时长会随着代码增加而变长,代码量可能比较大的可以参考我的另一篇使用vite打包sdk文章.

使用vite打包libary模式打包sdk


如果你需要自己封装一些包给别人使用,那么可以参考以下方法


初始化库


mkdir library
cd library
npm init -y


经过以上步骤后会生成一个library文件夹,里面包含一个package.json文件。然后简单修改为如下所示:

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


简单创建几个文件


在根目录下新建src文件夹,新建一个math.js和string.js。相关文件内容如下:

// 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;
}

继续新建一个index.js

import * as math from "./math";
import * as string from "./string";
export default {math,string}


简单安装webpack依赖


npm install webpack webpack-cli --save


安装的同时,可以创建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"
    }
}


安装成功后,执行打包命令

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文件夹里创建一个index.html,用script引入之前打包生成的library.js。浏览器打开index.html,在控制台中输入library,会得到如下所示的结果:


<script src="../dist/library.js">
    </script>
    <script>
        console.log(library);
    </script>

7729a67067e84d06ba303be6dfbaf117.png

如果不想要default这一层,在Index.js:

import * as math from "./math";
import * as string from "./string";
export { math, string }


一个简单的库便打包生成了。

注解:webpack中libraryTarget配置项可以设为umd,表示采用umd规范,如果设置为this,表示在this下挂载了一个library变量。更多用法可参考


webpack官网:https://webpack.js.org/configuration/output/#outputlibrarytarget


引入别的库用法


假设需要引入lodash.安装lodash

npm install lodash --save


修改之前创建的string.js

import _ from "lodash";
export function join(a,b){
    // return a+" "+b;
    return _.join([a,b]," ");
}


运行打包命令,发现打包出来的库体积变大了,因为我们引入了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"
    }
}


之后打包就会发现库的体积又变小了。


以上就是一个简单打包库的过程,打包完成后,就可以使用npm相关命令将库发布到npm仓库,发布成功后,就可以让别的小伙伴使用了。也可以直接发送打包后的文件给小伙伴引入使用 !


参考链接:https://segmentfault.com/a/1190000021318631


相关文章
|
2月前
|
JavaScript 前端开发
webpack成长指北第9章---webpack如何对icon字体进行打包
webpack成长指北第9章---webpack如何对icon字体进行打包
40 1
|
2月前
|
前端开发 JavaScript
webpack成长指北第7章---webpack的css\less\scss样式打包
webpack成长指北第7章---webpack的css\less\scss样式打包
44 0
|
3月前
|
Java 开发工具 Maven
springboot项目打包为sdk供其他项目引用
springboot项目打包为sdk供其他项目引用
|
2月前
|
前端开发 JavaScript
webpack成长指北第8章---webpack的CSS Modules打包
webpack成长指北第8章---webpack的CSS Modules打包
23 0
|
15天前
|
前端开发 JavaScript 开发者
深入了解Webpack:前端模块打包工具
深入了解Webpack:前端模块打包工具
8 1
|
17天前
|
JavaScript 前端开发
构建工具:配置Webpack打包Vue项目
【4月更文挑战第24天】本文介绍了如何配置Webpack来打包Vue项目。首先,Webpack作为模块打包器处理依赖并打包成可执行文件。接着,通过安装Node.js和npm,创建Vue项目,进入项目目录并配置Webpack的入口、输出、加载器和插件。最后,运行构建命令完成打包。理解Webpack基础并按需配置,能优化前端项目构建和开发体验。
|
4月前
|
前端开发 JavaScript 开发者
webpack打包机制,构建过程和配置
webpack打包机制,构建过程和配置
20 0
|
20天前
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
安全 开发工具 Android开发
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
418 0
|
7月前
|
API 开发工具 Android开发
解决 Android App 上架 Google play后 ,签名变更,第三方sdk无法登录
解决 Android App 上架 Google play后 ,签名变更,第三方sdk无法登录
152 0