现在我有:
"faker": "^5.5.3",
"@types/faker": "^5.5.3",
在我的packages.json中。我使用 5.5.3 是因为项目 (codecept) 中还有另一个依赖项被锁定到旧版本。
原始的 faker 项目位于 https://www.npmjs.com/package/faker似乎已经被遗弃了。它有一个笑话版本号,没有描述等。
我想使用在https://www.npmjs.com/package/@faker-js/faker处积极维护的项目
但是当我尝试时:
- 在我的packages.json中:
"@faker-js/faker": "^5.5.3"
- 使用以下方式导入:
import { faker } from '@faker-js/faker';
(根据 faker-js 文档) - 将其命名为
faker.datatype.number(100);
我得到:
Cannot read properties of undefined (reading 'datatype')
TypeError: Cannot read properties of undefined (reading 'datatype')
奇怪的是,同样的代码可以在同事的笔记本电脑上运行。
我做错了什么?我尝试过删除 node_modules
并重新开始,然后运行 npm install
,但没有运气。
最佳答案
将导入更改为 import faker from '@faker-js/faker'
应该可以解决问题,因为 faker 5.5.3 使用默认导入。
但是,您会收到编译器错误,因为此版本的 faker 不提供自己的类型。该包也没有 @types
并且 @types/faker
中的类型似乎与 @faker-js/faker
不匹配包裹。因此,您可以执行 const faker = require('@faker-js/faker) 并继续而不需要类型。但我建议升级 @faker-js/faker'
因为较新的版本具有开箱即用的 TypeScript 支持。
关于typescript - 无法在 TypeScript 项目中使用 @faker-js/faker —— 未定义 —— 但旧的 "faker"导入可以工作。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73738556/