错误:找不到模块'./drivers'与mongoose只在服务器上
mongoose在电脑上正常工作
但在服务器上,我得到这个错误:
Error: Cannot find module './drivers' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) at Function.<anonymous> (/usr/local/lib/node_modules/pm2/node_modules/pmx/lib/transaction.js:59:21) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (/var/www/html/WTV.com/node_modules/mongoose/lib/schema.js:5:16) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12)
好! 我花了一段时间,但我find了解决办法
- 在命令行中写入: heroku config:set NODE_MODULES_CACHE = false –app
- 做一些改变并推动项目
- 在命令行中写入: heroku config:set NODE_MODULES_CACHE = true –app
祝你好运 :)
我只需在克隆的目录中运行heroku run bash
,然后在rm -rf node_modules
键入并从那里运行npm install
。 简单地运行服务器通过heroku run bash
和工作正常! 希望这会为你工作。 确保你的.gitignore
文件中有node_modules
。
我最近碰到类似的问题。 我正在使用mongoose的MEAN栈作为我的ODM并在Heroku上托pipe:
Error: Cannot find module './drivers' at Function.Module._resolveFilename (module.js:326:15) at Function.Module._load (module.js:277:25) at Module.require (module.js:354:17) at require (internal/module.js:12:17) at Object.<anonymous> (/app/node_modules/mongoose/lib/schema.js:5:16) at Module._compile (module.js:410:26) at Object.Module._extensions..js (module.js:417:10) at Module.load (module.js:344:32) at Module.require (module.js:354:17) at Function.Module._load (module.js:301:12) at require (internal/module.js:12:17) Process exited with status 1 State changed from starting to crashed
除了设置NODE_MODULES_CACHE=false
(在caching行为部分),我必须从git node_modules
删除我的node_modules
目录(在Heroku文档中也推荐)。 看到这个线程如何从git中删除一个目录。
另外,将“node_modules”目录添加到.gitignore文件是一个好主意。 注:这不会从git中删除文件,您仍然必须删除任何您想要忽略的以前提交的文件或目录。