webpack—打包组件基础库流程

1. 准备工作,是否有npm账号,如果没有先注册一个;

命令如下:

npm adduser
//依次输入用户名、密码、邮箱;(密码需要复杂一点点10位以上的)
npm whoami
//查看当前用户;

注册成功

2.webpack除了打包应用,还可以打包js库;

实现一个大整数加法库打包;
1.需要打包压缩版和非压缩版本;
2.支持AMD/CJS/ESM模块引入;
1).ESM
import * as largeNumber from ‘large-number’;
// …
largeNumber.add(‘999’, ‘1’);
2).CJS
const largeNumbers = require(‘large-number’);
largeNumber.add(‘999’, ‘1’);
3).AMD
require([‘large-number’], function (large-number) {
// …
largeNumber.add(‘999’, ‘1’);
})
3.也可直接通过script引入;

3.实战

项目目录如下:
在这里插入图片描述
webpack.config.js文件
webpack4.0以上mode:production默认是内置有压缩的,所以配置时先将mode设置为none;

const TerserPlugin = require("terser-webpack-plugin");

module.exports = {
  mode: "none",
  entry: {
    "large-number": "./src/index.js",
    "large-number.min": "./index.js",
  },
  output: {
    filename: "[name].js",
    library: "largeNumber", //打包出来库的名字
    libraryTarget: "umd",
    libraryExport: "default",
  },
  optimization: {
    minimize: true,
    minimizer: [
      new TerserPlugin({
        include: /\.min\.js$/,
      }),
    ],
  },
};

根目录index.js

if (process.env.NODE_ENV === "production") {
  module.exports = require("./dist/large-number.min.js");
} else {
  module.exports = require("./dist/large-number.js");
}

src下index.js写需要封装的方法,用export default导出
pacage.json文件添加 “main”: “index.js”,scripts里面添加 “build”: “webpack”,“prepublish”: “webpack”;

最后npm publish发布上去;每次更新前需要改版本号才能发布上去,可以用这个命令对版本进行更新npm version patch;
在这里插入图片描述

别的项目引用:
暴露的方法在webpack中的library属性进行配置!!
import largeNumber from “large-number-lr”;
this.res = largeNumber(“999”, “1”);
上传到npm上的库
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值