«SyntaxError: неожиданный токен» после перехода на другую платформу - PullRequest
0 голосов
/ 16 января 2019

Я не разработчик, но меня просят перенести выпуск 1.3.4.1 Meteor на новую (CentOS 7) платформу.Первоначальная компания исчезла, а разработчик приложения ушел и не сотрудничает ... :( Насколько я знаю, это единственный выпуск.

Когда я запускаю следующую команду на новом сервере:

meteor run --port 3000 --release 1.3.4.1

Я вижу, что многие вещи (загрузка пакетов, сборка, компоновка, ..) работают нормально, но через несколько минут я получаю синтаксическую ошибку в build modules.js при запуске приложения:

[meteor@rfcwerkboek rfc-project]$ meteor run --port 3000 --release 1.3.4.1
[[[[[ ~/prod/rfc-project ]]]]]                

=> Started proxy.                             
W20190116-00:49:49.745(1)? (STDERR)           
W20190116-00:49:50.037(1)? (STDERR) /home/meteor/prod/rfc-project/.meteor/local/build/programs/server/packages/modules.js:26622
W20190116-00:49:50.038(1)? (STDERR)    matches.forEach(nextMatch => {
W20190116-00:49:50.038(1)? (STDERR)                               ^
W20190116-00:49:50.039(1)? (STDERR) SyntaxError: Unexpected token >
W20190116-00:49:50.039(1)? (STDERR)     at /home/meteor/prod/rfc-project/.meteor/local/build/programs/server/boot.js:292:30
W20190116-00:49:50.040(1)? (STDERR)     at Array.forEach (native)
W20190116-00:49:50.041(1)? (STDERR)     at Function._.each._.forEach (/home/meteor/.meteor/packages/meteor-tool/.1.3.4_1.wmvsc.7d2bga++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
W20190116-00:49:50.041(1)? (STDERR)     at /home/meteor/prod/rfc-project/.meteor/local/build/programs/server/boot.js:133:5
=> Exited with code: 8 

Часть кода в modules.js, в которой возникает синтаксическая ошибка:

   var fileFound = null;
   matches.forEach(nextMatch => {
      if( fileFound !== null ) return;

      if( nextMatch[1].length < 1 ){
         fileFound = new Buffer(0);
         return;
      }

Удаление сборки и повторный запуск процесса не решают проблему.

Сейчас я обнаружил файл с именем .node_version.txt в .meteor / local / build / , в котором написано:

v0.10.45

Мой новый дистрибутив CentOS 7имеет версию nodejs:

[meteor@rfcwerkboek rfc-project]$ node --version
v6.14.3

Я думаю, что это, вероятно, является причиной проблемы. Я прав? Если я прав, я должен понизить версию nodejs, удалив стандартные RPM для nodejs и скомпилировать и старую версию с нуля?

1 Ответ

0 голосов
/ 16 января 2019

Meteor поставляется со встроенным двоичным файлом node, поэтому вам не требуется установка node в вашей системе разработки .

Однако, если ваш CentOS является целевым сервером, на котором будет развернуто ваше приложение, вам потребуется установить версию точную node, чтобы запустить приложение в комплекте (но установка Meteor не требуется для сервер).

Фон

Сам Meteor - это, в основном, среда разработки, которая объединяет передовые практики и инструменты и объединяет весь этот код в приложение узла, которое работает как любое другое приложение узла.

Чтобы получить версию узла, которая требуется для установки на вашем сервере, вы можете перейти в каталог вашего проекта и позволить Meteor распечатать его версию узла:

$ cd myproject
$ meteor node -v
0.10.45

, который будет, например, версией узла для выпуска Meteor 1.7. Поэтому, если вы хотите запустить сборку на своем сервере, требуется версия этого узла.

Обратите внимание, что если версия из команды отличается от версии .node_version.text, то версия, которую вы получаете от meteor node -v, - это та, которая используется при запуске meteor build и должна быть установлена ​​на сервере.

Метеорологическое руководство по пользовательскому развертыванию кратко излагает это в понятной форме, и к нему следует обращаться при дальнейшей подготовке. Решение этой проблемы также должно устранить ошибку.

Короче говоря

  • Meteor - среда разработки с поставляемым node бинарным
  • Ваш сервер не требует установки Meteor
  • Для локальной разработки ОС не требуется дополнительная node установка
  • Все команды npm на компьютере разработчика должны выполняться с использованием meteor npm <command>
  • Для сервера требуется та же node версия, что и версия, поставляемая с Meteor
...