在 Heroku 上使用 moment.js 时遇到问题

Having problems using moment.js on Heroku

我曾经使用 moment.js 在 Parse 上使用一些云代码。

我的 main.js 文件中的第一行相关代码是:

var moment = require('cloud/moment.js');

现在在 Parse-Server 上,我在日志中收到以下错误消息:

Starting process with command `npm start`

 > parse-server-example@1.4.0 start /app
 > node index.js

 module.js:471
     throw err;
     ^
Error: Cannot find module 'moment.js'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/app/cloud/main.js:1:76)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)

谁能告诉我这是怎么回事?

在网上阅读了大量内容后,我尝试了一些方法,例如:

var moment = require('./cloud/moment.js');
var moment = require('moment.js');

全部失败。

我确定文件 moment.js 存在于我的云文件夹下。 我也试过安装新版本的moment(from: https://momentjs.com/),但是没有用。

正在检查 package.json 文件,它包含以下内容:

  "dependencies": {
    "express": "~4.11.x",
    "kerberos": "~0.0.x",
    "moment": "^2.17.1",
    "parse": "~1.8.0",
    "parse-server": "*"
  },

moment 添加到您的 package.json 文件并让 Heroku 安装它,然后只需执行 var moment = require('moment.js');

只需将此行 "moment": "^2.14.1" 添加到 package.json 文件的依赖项部分。

一般来说,您希望使用 npm install --save <libraryname> 添加依赖项,以便将其添加到 package.json 文件中。

你可以做到; npm install --save moment 作为替代解决方案。

错误可能是由这一行引起的:

var moment = require('moment.js');

应该是:

var moment = require('moment');

第一行在文件树中查找特定文件,而不是包。第二行查找包 'moment.js.'