Почему интегрированный терминал VS Code не работает, если я вызываю задачу сборки Typescript? - PullRequest
2 голосов
/ 20 октября 2019

Я редактирую файлы Typescript в VS Code, и когда я запускаю задачу сборки через Shift-Cmd-B, я получаю

`env: node: нет такого файла или каталога '

, но если я запускаю терминал и вручную набираю ту же команду, которую он использует, то есть

tsc -p /Users/Mike/Sync/projects/teaching/blendoku/tsconfig.json

, она работает нормально. Чем отличается оболочка, запускаемая с задачами сборки и наблюдения?

Ответы [ 2 ]

2 голосов
/ 28 октября 2019

Я исследовал эту проблему в течение некоторого времени, и вот что я нашел:

  1. Этот StackOverflow ответ весьма информативен:

Это происходит потому, что .bashrc не загружается для задач, так как они не являются интерактивными оболочками. Вам необходимо загрузить улучшения оболочки nvm для неинтерактивных оболочек, а также использовать глобальные пакеты, установленные через nvm, чтобы быть доступными для кода VS.

Создайте новый текстовый файл с именем, скажем, nvm-autoload.sh и поместите его в папку / etc / profile.d / , чтобы запустить его для всех оболочек входа в систему, включая оболочки задач для кода VS. Добавьте к этому файлу следующее:

# Enable nvm if available
if [ -f ~/.nvm/nvm.sh ]; then
  source ~/.nvm/nvm.sh
fi

Вам может потребоваться выйти из системы и войти в систему, чтобы это вступило в силу.

Если вы используете VS Code на macOS , вы также можете попробовать:

  • Вы можете попробовать экспортировать path/to/node в ~/.bash_profile, подробности вэта тема: GitHub Issue

  • Вы можете попробовать установить terminal.integrated.shellArgs.osx в [], подробности в этой теме: GitHub Issue

  • Если больше ничего не работает, вам может помочь этот поток переполнения стека: Вопрос StackOverflow

Если выиспользовать код VS в Windows :

  • Проблема может быть связана с разделителями путей в конфигурации сборки, которые экранируются / удаляются до запуска команды сборки;для получения более подробной информации и шагов, как исправить, проверьте этот StackOverflow ответ

Стоит также отметить, что языковая служба TypeScript VS Code отделена от установленного TypeScriptкомпилятор. Это может быть причиной некоторых расхождений. Ссылка

Также некоторые общие рекомендации следует убедиться, что содержимое tsconfig.json является допустимым и что путь к нему не имеет пробелов.

0 голосов
/ 22 октября 2019

Мне кажется, что вам нужно создать файл .env. Если вы хотите запустить команду npm из командной строки в коде VS, самый простой способ - добавить их в ваш package.json, который был создан в вашем проекте, когда выдобавленный узел.

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "pm2-dev app.js" // this has no meaning for your issue just an 
                               example
  },

, поскольку вы пытаетесь собрать

"scripts": {
   "test": "echo \"Error: no test specified\" && exit 1",
   "start": "pm2-dev app.js",
    "build": "your program to run here"
    },

Затем вы можете запустить сборку npm run build на терминале VS, но, как указано выше, из вашей ошибки это звучит каквам нужен файл .env.

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