faker.js发生了什么?

42

我看到这个代码库完全是空白的,上面显示了一条消息:

亚伦·斯沃茨(Aaron Swartz)到底发生了什么事?

我想知道是否还安全继续使用它,或者我们应该转换到另一个替代品。 这是代码库的链接https://github.com/marak/Faker.js/,它看起来像这样

输入图像描述


YAHP(又一个被黑的软件包)?最新版本6.6.6是在15小时前发布的,上一个版本(5.5.3)则是9个月前发布的。 - raina77ow
1
它并不是“不安全”,只是无法工作。您可以通过https://registry.npmjs.org/faker/-/faker-6.6.6.tgz下载软件包,而无需安装它,但所有文件都已丢失,因此您的导入将失败。`npm i faker@5`? - jonrsharpe
看起来是因为Marak(faker的创建者)以某种方式支持Aaron Swartz,从他的Twitter上查看https://twitter.com/marak/status/1478540823180582914/photo/1 - Rene Enriquez
3
有趣的事实是,几年前我提出一个问题,关于随机生成人名结果中有些略显俗气的词语。因为经常会出现像"Master Dick Gaylord"这样的名字,导致我在问题回复中受到了攻击性的反击。由于作者(Marak)的行为,我选择屏蔽他并停止处理这个库至今。 - Lawrence Cherone
2
@LawrenceCherone,你希望在没有这样的名称的情况下如何实现脏话过滤器?此外,并不是所有这类名称都是你认为的脏话,比如"迪克·格雷森"和"查尔斯·狄更斯"。 - Yılmaz Durmaz
2
@LawrenceCherone,你的意思是你在网上骚扰了作者,现在你成了受害者? - Michael Cole
4个回答

28

看起来 Faker 的主要维护者 Marak 故意从 GitHub 存储库中撤下了 Faker 的源代码和历史记录,并发布了一个不起作用的包。

为了背景,最近 Marak 因有关已故 Aaron Swartz 的一些颇具争议的评论(他们在 Faker 的更新 README 中提到了这一点)以及主张对其开源贡献进行补偿而为人所知。您可以在 2020 年 11 月的此 Hacker News 线程今天(2022 年 1 月 5 日)的此 Reddit 线程 上查看评论以了解更多背景信息。

如果您继续需要 Faker 提供的功能,则 npm 维护可供安装的旧版本 - 只需谨慎选择要安装的版本,例如,npm i faker@5.5.3。完整的源代码和历史记录也在 @withshepherd 在 GitHub 上的分支 中进行维护(在 NPM 上发布为 @withshepherd/faker)。

不幸的是,这是这种依赖生态系统的已知风险。


确实如此,这是一个已知的风险,但它是测试的良好依赖项。至少我们可以继续使用已发布的旧版本。 - Rene Enriquez

25
TLDR: Faker现在是一个社区项目。访问faker-js/faker,文档请参考fakerjs.dev,使用npm install @faker-js/faker

faker.js现在已经进入了一个社区仓库,并在https://github.com/faker-js/faker上找到了新的家。

常见问题 - 原来的faker.js发生了什么?

这个项目最初是在https://github.com/marak/Faker.js/上创建和托管的 - 然而在2022年1月4日左右,作者决定删除了这个仓库(原因不明)。

为了社区的利益,决定继续在这里维护faker.js,并且非常感谢所有在其开发中提供帮助的人。

在过去的24小时内,所有之前活跃的npm包都已重新上传到@faker-js/faker

更新:在1月14日,新的@faker-js社区基本完成了Faker的新外观,并在新的文档网站上进行了很好的更新:https://fakerjs.dev/update.html

这里是一点历史:https://fakerjs.dev/about/announcements/2022-01-14.html#i-heard-something-happened-what-s-the-tldr

1
看起来它正在发布为@faker-js/faker - jonrsharpe
很好。除了仍然指向Marak的代码行之外,它现在已经完全功能正常了。 - Yılmaz Durmaz

4
“亚伦·施瓦茨到底发生了什么?”“你不能谈论这个,否则你会被视为阴谋论者,并被逼离互联网。”“无论亚伦·施瓦茨是被谋杀还是死于法律纠纷的自杀,他都代表了一代编码人员和黑客,他们目睹了大型科技垄断企业将开源变成了伪开源。”“他试图制作一个公共的免费数据库,其中包括由税收支付的研究和法律记录 - 所有这些都在公共记录中 - 而其他垄断企业仍然将其隐藏在付费墙后面。”“亚伦·施瓦茨认为开源是为每个人而不仅仅是服务器。”“看起来马拉克认为这种对话比由无数虚假人物组成的虚假电子邮件更重要。”“如果你不舒服思考这个问题,只想要一些虚假人物,那么看起来有些人利用了马拉克的工作并从这些支持者那里赚了钱。”
npm install --save-dev @faker-js/faker

这是一个如何使用它的例子:
import { faker } from '@faker-js/faker';
// import { faker } from '@faker-js/faker/locale/de';

export const USERS: User[] = [];

export function createRandomUser(): User {
  return {
    userId: faker.datatype.uuid(),
    username: faker.internet.userName(),
    email: faker.internet.email(),
    avatar: faker.image.avatar(),
    password: faker.internet.password(),
    birthdate: faker.date.birthdate(),
    registeredAt: faker.date.past(),
  };
}

Array.from({ length: 10 }).forEach(() => {
  USERS.push(createRandomUser());
});

-12

我正在使用faker-js,它运行良好。在更新代码中的任何faker数据之前,请确保清除浏览器缓存(包括cookies)。

您可以按照以下方式导入它

const { faker } = require('@faker-js/faker');
const randomName = faker.name.findName(); // 返回一个随机名称

链接: https://www.npmjs.com/package/@faker-js/faker


2
你的回答可以通过添加更多支持信息来改进。请[编辑]以添加更多细节,例如引用或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Tobiah Rex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接