Heroku NodeJS 找不到模块

Heroku NodeJS cannot find module

我有一个应用程序 运行 在本地运行良好,但在部署时无法 运行。 消息是

Error: Cannot find module 'jsonwebtoken'

即使我在 package.json 的 "dependencies" 中有它(不是 devdependency)

我尝试了 "heroku run bash" 并验证了 node_modules 文件夹中存在 jsonwebtoken。
最后我尝试了 "heroku local web" 并且它工作正常。 但由于某种原因,它在部署时永远不会工作。

这是需要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"
}

谁能帮我弄清楚这是怎么回事?

从 jsonwebtoken 的 package.json 判断,您在 Heroku 上使用的节点版本太旧。我建议升级到最新版本。

我很确定它在本地适合你,因为你是 运行 比 0 更新的版本。10.X 在你自己的计算机上。