Ответ 1
Ваш Javascript файл (distServer.js
) - ваша запись - это файл, который вы запускаете для запуска вашего сервера. Ваш HTML файл (index.html
) служит только для ответа на запросы.
babel-node
подходит для разработки, но не подходит для производства. Вы можете предварительно скомпилировать ваши файлы Javascript в ванильный Javascript, затем используйте forever или pm2, как описано в вопросе который вы уже связали с, чтобы поддерживать работу сервера даже после закрытия вашего терминала.
Как вы упорядочиваете исходные файлы и скомпилированные файлы, зависит от вас, но здесь один из способов сделать это (цитата из документация для примера Node сервер с Babel):
Подготовка к использованию
Итак, мы немного обманули, используя
babel-node
. Хотя это отлично подходит для получения чего-то. Не рекомендуется использовать его в производство.Мы должны предварительно скомпилировать ваши файлы, поэтому сделаем это сейчас.
Сначала переместите наш сервер
index.js
наlib/index.js
.$ mv index.js lib/index.js
И обновите наш
npm start
script, чтобы отразить изменение местоположения."scripts": { - "start": "nodemon index.js --exec babel-node --presets es2015,stage-2" + "start": "nodemon lib/index.js --exec babel-node --presets es2015,stage-2" }
Далее добавьте две новые задачи
npm run build
иnpm run serve
."scripts": { "start": "nodemon lib/index.js --exec babel-node --presets es2015,stage-2", + "build": "babel lib -d dist --presets es2015,stage-2", + "serve": "node dist/index.js" }
Теперь мы можем использовать
npm run build
для предварительной компиляции наших активов иnpm run serve
для запуска нашего сервера в процессе производства.$ npm run build $ npm run serve
Это означает, что мы можем быстро перезагрузить наш сервер, не дожидаясь
babel
для перекомпилирования наших файлов.О, не забудьте добавить
dist
в наш.gitignore
файл.$ touch .gitignore dist
Это позволит убедиться, что мы случайно не передаем наши встроенные файлы git.