我的应用程序在本地运行正常,但在部署时无法运行。 消息是
Error: Cannot find module 'jsonwebtoken'
即使我有"依赖"在我的package.json(不是devdependency)
我试过" heroku运行bash"并验证jsonwebtoken存在于node_modules文件夹中 最后我尝试了#34; heroku本地网络"它工作正常。 但由于某种原因,部署后它永远不会起作用。
这是需要jsonwebtoken
的文件的开头var mongoose = require('mongoose');
var crypto = require('crypto');
console.log('check1');
var jwt = require('jsonwebtoken');
console.log('check2');
进入" check1"但不是" check2"
这是我的package.json
{
"name": "loc8r",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"engines": {
"node": "~0.10.13",
"npm": "~1.3.2"
},
"dependencies": {
"body-parser": "~1.8.1",
"cookie-parser": "~1.3.3",
"debug": "^2.0.0",
"dotenv": "^4.0.0",
"express": "~4.9.0",
"express-jwt": "^5.3.0",
"jade": "~1.6.0",
"jsonwebtoken": "^8.1.0",
"mongoose": "^4.13.5",
"morgan": "~1.3.0",
"passport": "^0.4.0",
"passport-local": "^1.0.0",
"request": "~2.51.0",
"serve-favicon": "~2.1.3",
"uglify-js": "~2.4.15"
},
"description": "myapp",
"main": "app.js",
"devDependencies": {},
"keywords": [],
"author": "",
"license": "ISC"
}
有人可以帮我弄清楚发生了什么吗?
答案 0 :(得分:1)
从jokuwebtoken的package.json判断,你在Heroku上使用的节点版本太旧了。我建议升级到最新版本。
我非常确定它适用于您本地,因为您在自己的计算机上运行的是比0.10.X更新的版本。