node.js - npm install --save-dev 后找不到模块 faker

标签 node.js faker.js

我想在本地安装我的所有模块,所以我使用更新 package.json 的“--save-dev”开关安装所有模块。

我试图包含 this 模块,所以我使用这个命令安装:

npm install Faker --save-dev

我的应用结构是这样的:

应用程序 Controller 楷模 Node 模块 骗子 服务器.js

所以 Faker 在正确的位置,但是当我在我的 server.js 文件中添加这段代码时:

var faker = require('./Faker');

我收到以下错误消息:

Error: Cannot find module './Faker'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/paulcowan/projects/async-talk/server.js:23:13)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10) 

但这行得通:

var Faker = require('./node_modules/Faker');

我认为我不必包含 node_modules 部分。

最佳答案

yarn upgrade --latest 之后,由于另一个原因我得到了这个错误:6.6.6 版本已经在 13 天前发布,它完全是空的 (only one commit called endgame) : https://www.npmjs.com/package/faker

这是黑客攻击吗?是笑话吗?如果有,好玩吗?不确定...

要修复它,只需回滚到上一个版本即可。

yarn add --dev faker@5.5.3
# or if you use npm
npm install --save-dev faker@5.5.3

编辑

按照下面akop的回答,最安全的方式似乎是切换到faker-js

yarn remove faker
yarn add --dev @faker-js/faker

然后改变你的导入

import * as faker from 'faker';
// to 
import * as faker from '@faker-js/faker';

他们的文档上也有 Typescript 的类型定义,但它对我来说没有用:github.com/faker-js/faker

编辑2

我与包的作者进行了交谈,他是一个有趣而疯狂的人。他因知识产权盗窃而生气,因此几乎毁掉了他的开源作品。

他现在为了好玩而开发了一个 2000 年代风格的虚拟桌面 buddypond.com

关于node.js - npm install --save-dev 后找不到模块 faker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21866285/

相关文章:

javascript - faker.helpers.unique(faker.datatype.number, options) 不尊重提交的选项

typescript - 无法在 TypeScript 项目中使用 @faker-js/faker —— 未定义 —— 但旧的 "faker"导入可以工作。为什么?

sql-server - 高效地动态创建 CSV 文件报告,而不会减慢 Node.js 服务器的速度

node.js - 如何扩展 nodejs 应用程序

javascript - Puppeteer 框架请求

php - 加载 gRPC 二进制模块失败(gRPC php 教程)

javascript - Mongodb:如何在上限集合上创建 `tail -f` View ?