Как запустить локальный HTTP-сервер

Я клонировал angular seed, который использует node http-server, и он отлично работает с использованием следующей конфигурации.

Команда: запуск npm (от корня проекта)

Следующая конфигурация в файле package.json:

"start": "http-server -a localhost -p 8000 -c-1",
Link to file

Однако я не могу запустить этот сервер напрямую. например: из корня проекта ни одна из этих команд не работает:

>  angular-seed npm http-server  
>  angular-seed node http-server
>  angular-seed http-server

Должен ли этот (http-сервер) быть доступен здесь (root, откуда он был установлен)? Может ли кто-нибудь объяснить мне, как он работает, и как я могу использовать его прямо из корня проекта.

Я уверен, что он будет работать нормально, если я установлю его по всему миру, но меня это не интересует.

Ответ 1

Когда вы запускаете npm install в корне проекта, он устанавливает все зависимости npm в каталог проекта node_modules.

Если вы посмотрите на каталог проекта node_modules, вы должны увидеть каталог с именем http-server, который содержит пакет http-server и папку .bin, которая содержит исполняемые двоичные файлы из установленных зависимостей, Каталог .bin должен иметь двоичный файл http-server (или ссылку на него).

Итак, в вашем случае вы можете запустить http-server, выполнив следующее из корневого каталога проекта (вместо npm start):

./node_modules/.bin/http-server -a localhost -p 8000 -c-1

Это должно иметь тот же эффект, что и запуск npm start.

Если вы используете оболочку Bash, вы можете упростить ее, добавив папку ./node_modules/.bin в переменную среды $PATH:

export PATH=./node_modules/.bin:$PATH

Это поместит эту папку на ваш путь, и вы сможете просто запустить

http-server -a localhost -p 8000 -c-1

Ответ 2

Чтобы запустить сервер локально, вставьте приведенный ниже код в package.json и запустите npm start в командной строке.

"scripts": { "start": "http-server -c-1 -p 8081" },

Ответ 3

Если вы используете VSCode, попробуйте закрыть и снова открыть инструмент. работал на меня.