npm 发布 自己编写的库(以大数加法为例,完整流程)

步骤

以大数加法为例:

  1. 创建项目,安装 webpack, webpack-cli
mkdir npm_publish_bigInt

cd npm_publish_bigInt

npm init -y

cnpm i webpack -D
cnpm  i webpack-cli -D

cnpm i terser-webpack-plugin -D
  1. 编写库的源码
// src/index.js
export default function add (a,b) {
    let aLen = a.length - 1, bLen = b.length - 1
    let count = 0 // 进位
    let res = ''  
    while(aLen >= 0 || bLen >= 0) {
      let aVal = 0, bVal = 0
      if(aLen >= 0) {  // 不能直接使用+a[aLen],防止其中一个先加完
        aVal = +a[aLen]
        aLen--
      }
      if(bLen >= 0) {
        bVal = +b[bLen]
        bLen--
      }
      let sum = aVal + bVal + count     // 计算和
      if(sum >= 10) {
        count = 1
        sum -= 10
      }else {
        count = 0
      }
      
      res = sum + res // '1'+2 = '12'
    }
    if(count) res = count + res
  
    return res
  }
  1. 编写配置文件 webpack.config.js

需要满足:

  • 打包两个文件,一个代码压缩版min.js(用于生产环境),一个非压缩版(用于开发环境)
// 代码压缩使用插件:terser-webpack-plugin,类似uglify,打包js代码的

const TerserPlugin = require('terser-webpack-plugin');	// 引入插件

module.exports = {
    entry: {	// 打包文件的 多入口
        'large-number': './src/index.js',
        'large-number.min': './src/index.js'
    },
    output: {	// 出口,文件名用入口组合
        filename: '[name].js',
        library: 'largeNumber', // 打包出来库的名称
        libraryTarget: 'umd',   // 可以用多种方法引用
        libraryExport: 'default'
    },
    mode: 'none',   // 去掉文件压缩
    optimization: {		// 配置
        minimize: true,
        minimizer: [
            new TerserPlugin({  // 针对制定文件压缩
                include: /\.min\.js$/,  // 正则
            })
        ]
    }
    
}
  1. 编写根目录 index.js

区分生产环境和开发环境的引用

if (process.env.NODE_ENV === 'production') {
    module.exports = require('./dist/large-number.min.js');
} else {
    module.exports = require('./dist/large-number.js');
}
  1. npm登录

首先需要注册npm账号,并且登录 npm login,留意自己的源
(可以安装 nrm 管理源)

npm i nrm -g

nrm ls

nrm use 源

登录需要邮箱验证
如登录成功,输入 npm whoami 可以查看到用户名

  1. 登录后,打包项目并发布
  "scripts": {
    "build": "webpack",
    "prepublish": "webpack"
  },
npm run build

npm publish

此时登录 npm(https://www.npmjs.com/) 即可看见 发布的包
在这里插入图片描述

使用

简单说一下使用

npm i npm_publish_bigint -D

在 node_modules/ npm_publish_bigint 中可以看到编写的一模一样的库代码

import bigInt from 'npm_publish_bigint'

bigInt('100','1')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值