【问题标题】:Having problems using moment.js on Heroku在 Heroku 上使用 moment.js 时遇到问题
【发布时间】:2017-01-23 10:41:54
【问题描述】:

我曾经使用 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(来自:https://momentjs.com/),但无济于事。

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

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

【问题讨论】:

    标签: javascript node.js heroku momentjs parse-server


    【解决方案1】:

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

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

    应该是:

    var moment = require('moment');

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

    【讨论】:

    • 听起来你是对的。我停止收到错误。所以我以前用一个简单的文件,我现在用的是一个包。非常感谢。
    • 很高兴为您提供帮助!
    【解决方案2】:

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

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

    通常,您希望使用 npm install --save &lt;libraryname&gt; 添加依赖项,以便将其添加到 package.json 文件中。

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

    【讨论】:

    • 谢谢,但我刚刚检查了 package.json 文件,它包含您所说的(或类似内容)。我刚刚编辑了我的帖子以反映这一点。那么缺少什么?
    • 替换这一行 var moment = require('cloud/moment.js');通过这个 var moment = require('moment');不要把它们放在一起
    • 这就是我所做的。我仍然得到同样的错误。 var moment = require('moment.js');是我的文件 main.js 的第一行
    猜你喜欢
    • 2014-06-03
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 2019-05-28
    • 1970-01-01
    相关资源
    最近更新 更多