Как запустить локальный 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, попробуйте закрыть и снова открыть инструмент. работал на меня.