React-Native / Expo / Cygwin «Неожиданный токен» Проблема - PullRequest
0 голосов
/ 23 января 2019

После установки response-devtools я больше не могу запускать expo-cli.Все работало нормально, пока я не сделал это.Теперь я получаю ошибку ниже.Мои полномочия Powershell также были изменены на «ограниченные».Я восстановил свой реестр на предыдущий день и удалил / переустановил узел и пряжу, чтобы исправить это.

В списке ошибок указан Cygwin, который я не установил на своем компьютере (не отображаетсяв поиске по реестру), однако, просматривая мой компьютер, я вижу, что Cygwin был установлен с Git:

C: \ Program Files \ Git \ usr \ share \ cygwin
C: \ Program Files \Git \ usr \ bin \ cygwin-console-helper.exe
C: \ Program Files \ Android \ Android Studio \ bin \ lldb \ lib \ distutils \ cygwinccompiler.py
C: \ Program Files \ Git \ usr\ lib \ perlS \ core_per | \ File \ Spec \ cygwin.pm
C: \ Program Files \ Git \ usr \ share \ cygwin \ cygwin.ldif
C: \ Program Files \ Git \ usr \ share \tern1info \ 63 \ cygwin
C: \ Program Files \ Git \ usr \ lib \ terminf0 \ 63 \ cygwin

Любая помощь будет принята с благодарностью.
Windows 10
npm: 6,6.0
узел: v10.15.0
пряжа: v1.13.0

expo start --android
At C:\Users\name\AppData\Local\Yarn\bin\expo.ps1:5 char:13
+     *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+             ~
Unexpected token ')' in expression or statement.
At C:\Users\name\AppData\Local\Yarn\bin\expo.ps1:8 char:3
+ if [ -x "$basedir/pwsh" ]; then
+   ~
Missing '(' after 'if' in if statement.
At C:\Users\name\AppData\Local\Yarn\bin\expo.ps1:8 char:5
+ if [ -x "$basedir/pwsh" ]; then
+     ~
Missing type name after '['.
At C:\Users\name\AppData\Local\Yarn\bin\expo.ps1:9 char:20
+ ... edir/pwsh"  "$basedir/../Data/global/node_modules/.bin/expo.ps1" "$@" ...
+   
Unexpected token '"$basedir/../Data/global/node_modules/.bin/expo.ps1"' in expression or statement.
At C:\Users\name\AppData\Local\Yarn\bin\expo.ps1:9 char:73
+ ... edir/pwsh"  "$basedir/../Data/global/node_modules/.bin/expo.ps1" "$@"
+   
Unexpected token '"$@"' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : UnexpectedToken

@ supermerio

C: \ Users \ name \ AppData \ Local \ Yarn \bin \ expo.ps1

#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")

case `uname` in
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac

if [ -x "$basedir/pwsh" ]; then
  "$basedir/pwsh"  "$basedir/../Data/global/node_modules/.bin/expo.ps1" "$@"
  ret=$?
else 
  pwsh  "$basedir/../Data/global/node_modules/.bin/expo.ps1" "$@"
  ret=$?
fi
exit $ret

AКроме того, я смог заставить выставку работать, установив ее в свой репозиторий и вызвав ее оттуда.Я заметил разницу в локальном сценарии по сравнению со сценарием в глобальной установке.Локальный скрипт вызывает «узел», где глобальный скрипт (выше) вызывает «pwsh».

\ LactFacts \ lactfact_190118 \ node_modules.bin \ expo:

#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")

case `uname` in
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac

if [ -x "$basedir/node" ]; then
  "$basedir/node"  "$basedir/../expo-cli/bin/expo.js" "$@"
  ret=$?
else 
  node  "$basedir/../expo-cli/bin/expo.js" "$@"
  ret=$?
fi
exit $ret

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Это известная проблема пряжи 1.13.0: https://github.com/yarnpkg/yarn/issues/6902#issuecomment-453534280

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

Похоже, что все, что находится в "C: \ Users \ name \ AppData \ Local \ Yarn \ bin \ expo.ps1", имеет неправильно отформатированный оператор if.

Можете ли вы просмотреть этот файл для подтверждения? Разместите здесь, если это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...