npm包的制作(发布到npm中央仓库)
下面以实现JavaScript深浅拷贝的函数为例:
(这里主要讲解npm包的制作,具体函数大家有兴趣的可以自行研究,或看我的这篇专门讲解的文章JavaScript深浅拷贝详解)
- index.js
export function shallowClone(target) { // 类型判断,target为对象或数组才有意义 // typeof target === 'object' 有三种可能,对象、数组、null if (typeof target === 'object' && target !== null) { if (Array.isArray(target)) { // 如果target为数组 return [...target] } else { // 为对象 return { ...target } } } else { // 传入的参数不符合条件 return target } } // Map和对象类似,只不过Map的键和值可以是任意类型 // 用Map做容器可确保遍历时键的唯一性 export function deepClone(target, map = new Map