使用json-server-auth作为中间件启动json-server失败求助
问题:启动带json-server-auth中间件的json-server时提示找不到json-server模块
问题场景
按照官方文档执行以下命令启动json-server并加载json-server-auth中间件:
json-server data/db.json -m ./node_modules/json-server-auth --port 8000
运行后抛出模块找不到错误:
\{^_^}/ hi! Loading data/db.json Loading ./node_modules/json-server-auth Error: Cannot find module 'json-server' Require stack: - G:\learn-nest\node_modules\json-server-auth\dist\guards.js - G:\learn-nest\node_modules\json-server-auth\dist\index.js - C:\Users\AppData\Roaming\npm\node_modules\json-server\lib\cli\run.js - C:\Users\AppData\Roaming\npm\node_modules\json-server\lib\cli\index.js - C:\Users\AppData\Roaming\npm\node_modules\json-server\lib\cli\bin.js at Module._resolveFilename (node:internal/modules/cjs/loader:1142:15) at Module._load (node:internal/modules/cjs/loader:983:27) at Module.require (node:internal/modules/cjs/loader:1230:19) at require (node:internal/modules/helpers:179:18) at Object.<anonymous> (G:\learn-nest\node_modules\json-server-auth\dist\guards.js:6:20) at Module._compile (node:internal/modules/cjs/loader:1368:14) at Module._extensions..js (node:internal/modules/cjs/loader:1426:10) at Module.load (node:internal/modules/cjs/loader:1205:32) at Module._load (node:internal/modules/cjs/loader:1021:12) at Module.require (node:internal/modules/cjs/loader:1230:19) { code: 'MODULE_NOT_FOUND', requireStack: [ 'G:\\learn-nest\\node_modules\\json-server-auth\\dist\\guards.js', 'G:\\learn-nest\\node_modules\\json-server-auth\\dist\\index.js', 'C:\\Users\\AppData\\Roaming\\npm\\node_modules\\json-server\\lib\\cli\\run.js', 'C:\\Users\\AppData\\Roaming\\npm\\node_modules\\json-server\\lib\\cli\\index.js', 'C:\\Users\\AppData\\Roaming\\npm\\node_modules\\json-server\\lib\\cli\\bin.js' ] }
已执行的排查操作
- 同时完成了json-server和json-server-auth的全局+本地安装
- 单独启动json-server无异常,命令如下:
json-server --watch data/db.json --port 8000
当前使用版本:json-server@1.0.0-alpha.23、json-server-auth@2.1.0
解决方法
1. 使用本地json-server启动
全局安装的json-server无法读取本地项目node_modules中的依赖,改用本地命令触发:
npx json-server data/db.json -m ./node_modules/json-server-auth --port 8000
或者在项目的package.json中配置启动脚本:
{ "scripts": { "mock": "json-server data/db.json -m ./node_modules/json-server-auth --port 8000" } }
之后执行npm run mock即可启动。
2. 统一依赖安装方式
卸载全局的两个包,仅保留本地开发依赖:
npm uninstall -g json-server json-server-auth npm install json-server json-server-auth --save-dev
后续通过npx或npm scripts启动即可避免依赖路径问题。
3. 调整版本兼容
json-server@1.x为测试版本,与json-server-auth@2.1.0存在兼容风险,降级json-server到稳定版:
npm uninstall json-server npm install json-server@0.17.4 --save-dev
再用本地命令启动,即可正常加载中间件。
内容的提问来源于stack exchange,提问作者HazzazDurjoy
相关产品推荐
相关产品推荐

