Как исправить SyntaxError: ожидается #, \n, \r или [ \t], но [ найдено. который извлекается модулем yargs?

В настоящее время я занимаюсь непрерывным развертыванием с конвейерами битбакетов. Я поместил в канал команду npm test, потому что я использую mocha для выполнения модульных тестов в моем проекте node.

Когда я запускаю npm test в своей локальной оболочке для проверки своих маршрутов, каждый из них работает. Но когда временный сервер битбакета запускает команду, я получаю эту ошибку:

[email protected] test /opt/atlassian/pipelines/agent/build
> mocha tests/**/*.js
/opt/atlassian/pipelines/agent/build/node_modules/mocha/node_modules/yargs/yargs.js:1163
      else throw err
           ^
SyntaxError: Expected "#", "\n", "\r" or [ \t] but "[" found.
npm ERR! Test failed.  See above for more details.

Недавно я реализовал файл config.toml в своем репозитории, чтобы поместить в свой код некоторую переменную (например, домен, путь и т. д.). С этого момента модульные тесты, запускаемые в конвейере, больше не работают.

Это проблема синтаксического анализа toml?

это мой томл файл:

title = "configuration"

[charlie]
domain = "localhost"
path = "/"
port = 3000

Любые советы должны быть действительно оценены.


person Joffrey    schedule 01.05.2019    source источник


Ответы (1)


После некоторых исследований я нашел источник проблемы.

Мой файл toml был упомянут в файле gitignore, чтобы его не помещали в мой удаленный репозиторий.

Вот почему мне пришлось скопировать/вставить весь контент toml, чтобы поместить его в одну переменную окружения bitbucket. С помощью этой техники я был уверен, что у меня на сервере будет рабочая версия config.toml, а на моей машине — версия config.toml для разработчиков.

Проблема заключалась в том, что моя переменная BitBucket была отформатирована в одну строку. Действительно, формат toml чувствителен к разрыву строки. Вот почему я использовал json вместо toml, и проблема была исправлена.

person Joffrey    schedule 08.05.2019