«Установка npm» вызывается веб-приложением Azure, когда оно обнаруживает файл package.json в push-запросе. Устанавливает пакеты, перечисленные в «Зависимостях».
Однако, это не идеально. Один из моих проектов нуждался в SQLite, но он не был установлен. Я справился с этим, установив все пакеты локально, а затем отправив всю папку «node_modules» в Azure, используя локальный Git
Я не буду рекомендовать помещать "sample_service.js" в "node_modules", потому что эта папка создается и изменяется npm на основе зависимостей, перечисленных в "package.json". Попробуйте поместить "sample_services.js" вне, но в ту же папку, что и "node_modules".
Если «sample_services.js» является внутренним сервером Javascript, вам необходимо переименовать его в «server.js» или «app.js» из-за ограничений по именованию при развертывании. Укажите его как «главный» в вашем «package.json», чтобы Azure запускал его как эквивалент «node server.js» в Windows Powershell, чтобы запустить ваш бэкэнд, и включить следующий код в ваш «server.js»:
const port = process.env.PORT || 3000;
Полученный файл "package.json" должен выглядеть примерно так:
{
"name": "myProject",
"version": "1.0.0",
"engines": {
"node": "8.10.0",
"npm": "5.6.0"
},
"description": "Project X",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
},
"author": "me",
"license": "ISC",
"dependencies": {
"express": "4.16.3",
"sqlite3": "4.0.2"
}
}
Azure автоматически выбирает, какую версию Node.js и npm использовать. Если у вас есть проблемы с совместимостью, укажите версию Node.js и npm, как я сделал
Кроме того, если вы использовали Express для маршрутизации, как я делал в предыдущем проекте, этот код в "server.js" запускается для загрузки страницы HTML загрузки по умолчанию:
app.get('/', function(req,res){
console.log('default html loading');
res.render('./public/index.html');
});
Опять же, из-за тех же ограничений именования, я назвал свою основную страницу HTML как index.html
Если вы хотите попробовать полный пример или сравнить код, я нашел это руководство полезным: https://www.codeproject.com/Articles/1133660/Deploy-Node-js-in-Microsoft-Azure
Ура!