我想在本地安装我的所有模块,所以我使用更新 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/