- 本文参加了由公众号@若川视野 发起的每周源码共读活动, 点击了解详情一起参与。
- 这是源码共读的第xx期,链接:xxx。
源码分析
function omit(obj, fields) {
// eslint-disable-next-line prefer-object-spread
const shallowCopy = Object.assign({}, obj);
for (let i = 0; i < fields.length; i += 1) {
const key = fields[i];
delete shallowCopy[key];
}
return shallowCopy;
}
obj 需要进行浅拷贝删除的对象
fields 所有需要删除属性所组成的数组
- omit首先将传入的对象进行一次浅拷贝到空对象中
- 然后遍历需要删除的属性
- 从浅拷贝后的对象中删除遍历的属性
单元测试
使用nodejs自带的assert库进行单元测试
使用npm run test来测试案例
npm发包
常用指令
npm config list查看npm所使用的源地址npm config set registry https://registry.npm.taobao.orgnpm config set registry https://registry.npmjs.org
发包
- 使用
npm login来登录到npm.
在发包之前,确保代码已经被托管
- 使用
npm publish来发包
建议使用@username/packagename来作为包名