7-8 Left-pad (20 分) 根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把...例如用*去填充字符串GPLT,使之长度为10,调用left-pad的结果就应该是******GPLT。Node社区曾经对left-pad紧急发布了一个替代,被严重吐槽。下面就请你来实现一下这个模块。
42449444/article/details/88427878 题目描述: 根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad...例如用*去填充字符串GPLT,使之长度为10,调用left-pad的结果就应该是******GPLT。Node社区曾经对left-pad紧急发布了一个替代,被严重吐槽。下面就请你来实现一下这个模块。
L1-032 Left-pad (20分) 题目描述: 根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad...例如用去填充字符串GPLT,使之长度为10,调用left-pad的结果就应该是*****GPLT。Node社区曾经对left-pad紧急发布了一个替代,被严重吐槽。下面就请你来实现一下这个模块。
两天前,一名NPM(Nodejs Package Manager)社区的贡献者Azer Koçulu出于对NPM管理层的怨愤,不声不响删除了自己在NPM上面的全部代码,其中就包含只有11行代码的“Left-pad...其中就包括流行组件“left-pad”。这个组件只有11行,功能很简单,就是在给定的字符串左边重复插入给定的字符,以达到需要的字符串长度。...Facebook、Spotify以及Netflix等著名公司大型软件项目中都用 到了Babel这个模块,而Bel本来这个模块又调用了“left-pad”这个模块。...据NPM官方博客,“left-pad”删除后, 受到影响的模块达到数千个。 这就像飞机的发动机突然掉了一颗螺丝,点火时候系统就肯定会报错,但是你却很难定位为题的出处。...以外发生4个多小时后,NPM社区管理员决定出手,把“left-pad”这个名字从Azer Koçulu手中夺了回来,重新写了一个“left-pad”函数,终于才抚平了千万程序员躁动的心。
L1-032 Left-pad 根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把...例如用去填充字符串GPLT,使之长度为10,调用left-pad的结果就应该是*****GPLT。Node社区曾经对left-pad紧急发布了一个替代,被严重吐槽。下面就请你来实现一下这个模块。
近日,一个只有 11 代码的 left-pad 被作者 unpublished。 npm 圈子因此闹得鸡犬不宁。究竟发生了什么呢? [图片] 发生了啥?...一个叫 left-pad 的封包包,虽然只有 11 行,但被上千个项目用到,其中包括著名的 babel 和 react-native。...,一怒之下将自己在 npm 上的 273 个封包全部撤下,其中就包括 left-pad 封包。...一石激起千层浪,依赖 left-pad 的上千个项目包括 babel 和 react-native 瞬间崩溃。大量开发者看着自己项目构建失败,顿时被吓尿。...现在的 left-pad 和 npm 事件倒让我意识到了现实的复杂性。代码孕育政治啊!
left-pad[1] 工具模块被作者从 NPM 上撤下,所有直接或者间接依赖这个模块的 NPM 包就忧伤的挂掉了,包括 babel 这样的热门项目。...——《从 left-pad 事件我们可以学到什么[3]》 于是就有好事者研究此模块,发现它的作用是在字符串前padding一些东西到一定的长度。...myPow(x, n / 2); if (n & 1) return mid * mid * x; return mid * mid; }; References [1] left-pad...: https://github.com/azer/left-pad/blob/master/index.js [2] kik: https://github.com/starters/kik [3]...从 left-pad 事件我们可以学到什么: https://segmentfault.com/a/1190000004700432 [4] pow(x, n): http://www.cplusplus.com
left-pad事件 当年在GitHub上有很火的事件,left-pad开发者收回了它的开源代码,当时这个npm包很多大型项目都在用,我们来说说这个事情的槽点。...这个left-pad只有十一行代码 module.exports = leftpad; function leftpad (str, len, ch) { str = String(str);
faulty default allow = false # Packages that aren't allowed blacklist = { "event-stream", "left-pad..."private": true, "dependencies": { "event-stream": "^4.0.1", "express": "^4.17.1", "left-pad...": "^1.3.0" } } 注定要失败的package.json 我在这里包含了两个依赖项 — event-stream和left-pad — 它们显然违反了黑名单。
让我们在以下项目的目录结构中使用Bit来隔离和共享可重用的组件left-pad, some-logic和hello-world 。.... ├── App.js ├── App.test.js ├── favicon.ico ├── index.js └── src └── common ├── left-pad
我们来看个npm包left-pad,因为代码风格等槽点导致作者下线npm包,然后引发一系列事件。left-pad事件?...left-pad作为npm包,实现了左边字符补齐功能,当时主要有以下几个槽点:粒度拆分过细代码风格业余代码质量/效率不高我们来认真审视下这段代码,其实可以理解作者这样实现的用意。...就像上述 left-pad 案例,字符串前面一半不需要拼接太多的空串,用 while 循环遍历完全够用,代码的可读性还高;用 repeat 反而可读性较低,不容易理解。
2016 年的“left-pad 库”事件让我们看到,对第三方软件越来越多的依赖是如何让互联网面临风险的。...1 “left-pad 库”事件 left-pad 是一个简单的程序,它可以用某些字符(通常是 0 或空格),来“填充”左侧的文本值,直到它达到指定的大小为止。...然而,有成千上万的开发人员在他们的代码中包含了这个库,他们中的许多人在不知情的情况下包含了一个包含 left-pad 的不同库。...这一事件始于一个名为 npm 的流行 JavaScript 库管理工具中取消了 left-pad 库。当时,所有依赖 left-pad 的项目都崩溃了。...从安全角度来看是这样的:如果 left-pad 的维护者没有取消发布库,而是增加一个这样“功能”:将 left-pad 的填充信息记录发送到他们控制的服务器上,或者更糟糕的是,如果是试图安装一些更全面的监控恶意软件呢
.> # 依赖更新 yarn upgrade yarn upgrade left-pad yarn upgrade left-pad@^1.0.0 yarn upgrade left-pad grunt
我们先来看一下怎么使用: { "dependencies": { "left-pad": "patch:left-pad@1.3.0#..../my-patch.patch" } } 上面的package.json中定义了 left-pad这个依赖是如何解析的,我们可以看到left-pad的解析其实就用到了patch协议,它表示项目中用到的...left-pad代码是1.3.0这个版本的代码叠加上 ..../my-patch.patch这个补丁,所谓的补丁就是我们自己对left-pad这个库的代码的更改,和git的diff文件类似。 Portal协议 Portal协议和原有的link协议类似。
package.json 中添加 resolutions 配置: { "name": "project", "version": "1.0.0", "dependencies": { "left-pad
【突然删除】left-pad left-pad 是一个非常简单的 NPM 包,只有 11 行代码,它通过添加额外的空格来将字符串填充到指定的长度。...len = len - str.length; while (++i < len) { str = ch + str; } return str; } 此事件的前因是 left-pad...的作者与另一位开发者之间的商标争议,导致 left-pad 被从 NPM 上撤下。
2016:left-pad成为当时的新闻头条 ? 2016:yarn 发布 ? 支持 npm 和 bower 仓库 yarn.lock 能够锁定安装的版本并提供确定性的依赖关系。
Azer一怒之下就把自己发在npm上的273个模块全都撤掉了,包括left-pad等被广泛应用的模块,于是数千个软件都出现了问题,引发了轩然大波。 ?
4.2 选择性版本安装Yarn支持通过@符号指定依赖的具体版本范围或标签,例如yarn add left-pad@^1.0.0安装left-pad包的1.x版本。
他指的是 JavaScript 软件库 left-pad 曾出现过的情况:2016 年的一场争吵之后,一个开发者将该软件库移出了 npm。
领取专属 10元无门槛券
手把手带您无忧上云