2017-01-23 4 views
0

Раньше у меня был какой-то облачный код на Parse, используя moment.js.Проблемы с использованием moment.js на Heroku

Первая соответствующая строка кода внутри моего main.js файл был:

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

Теперь на Разбор-сервере я получаю следующее сообщение об ошибке в журналах:

Starting process with command `npm start` 

> parse-se[email protected] 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 присутствует в моей папке с облаками. Я также попытался установить новую версию момента (от: https://momentjs.com/), но безрезультатно.

Проверка файла package.json, он содержит следующее:

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

ответ

2

ошибка, вероятно, вызвана этой линией:

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

Оно должно быть:

var moment = require('moment');

Первая строка ищет конкретный файл в файл дереве, а не пакет. Вторая строка ищет пакет «moment.js».

+0

Похоже, вы правы. Я перестал получать ошибку. Поэтому я использовал простой файл, теперь я использую пакет. Большое спасибо. – Michel

+0

Рад помочь! –

0

Добавить 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 в качестве альтернативного решения.

+0

Спасибо, но я только что проверил файл package.json, и он содержит то, что вы говорите (или подобное). Я только что редактировал свой пост, чтобы отразить это. Так чего же не хватает? – Michel

+1

замените эту строку var moment = require ('cloud/moment.js'); этим параметром var = require ('moment'); не укладывайте их вместе –

+0

Это то, что я сделал. Я все равно получаю ту же ошибку. var moment = require ('moment.js'); - первая строка моего файла main.js – Michel