heroku 上部署node.js的几个注意点

简介: 由于课程设计需要把网站发布到heroku上,今天试着把以前用angularJs开发的一个前端应用部署上去,在部署的过程中遇到几个注意点,在此进行记录。

由于课程设计需要把网站发布到heroku上,今天试着把以前用angularJs开发的一个前端应用部署上去,在部署的过程中遇到几个注意点,在此进行记录。

package.json中需要指定node的版本

本地开发node运行时是通过系统环境变量找到的,因此不需指定版本,但部署到heroku上时,由于heroku需要根据版本号去下载对应版本的nodejs,因此必须指明node的版本,个人感觉可能heroku的部署原理类似于Docker,官方的文档在Heroku Node.js Support
package.json中的配置如下:

"engines": {
    "node": "4.4.0",
    "npm": "2.1.x"  //npm 的版本不需指明,可选  
  }, 

开发依赖项要放入dependencies中,如bower, http-server等

我在前端项目中用到了bower包管理器,主要管理一些前端框架,如Jquery,Bootstrap等,因此我的页面能够正常访问的前提是bower install能够正常执行,但由于我开发时将bower放在了package.json中的devDependecies中,因此在部署到heroku上后,它在npm install时默认忽略了devDependecies中的内容,包括bower,因此导致页面无法访问,配置如下:

"dependencies": {
        "karma": "^0.13.21",
        "karma-chrome-launcher": "^0.1.4",
        "karma-firefox-launcher": "^0.1.3",
        "karma-jasmine": "~0.1.0",
        "protractor": "^2.1.0",
        "http-server": "^0.9.0",
        "tmp": "0.0.23",
        "bower": "^1.3.1",
        "shelljs": "^0.2.6"
    },

官方文档在这里Troubleshooting Node.js Deploys

启动http服务器时,指定的端口应使用$PORT

$PORT应该是heroku指定的一个发布网页应用的端口,其他端口不可用
,官方的文档说明在这里Runtime Principles

目录
相关文章
|
JSON JavaScript Linux
【MCP教程系列】Node.js+TypeScript搭建NPX MCP服务并自定义部署至阿里云百炼
本文介绍如何将阿里云百炼的工作流封装成MCP服务并部署,随后引入到智能体中使用。主要步骤包括:1) 封装MCP服务;2) 发布到npm官方平台;3) 在阿里云百炼平台创建自定义MCP服务;4) 在智能体中添加自定义MCP服务。通过这些步骤,用户可以轻松将工作流转化为MCP服务,并在智能体中调用。
3227 0
|
11月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
11月前
|
JavaScript 前端开发 Docker
如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
通过这些步骤,可以确保您的Next.js应用在多核服务器上高效运行,并且在Docker环境中实现高效的容器化管理。
1129 44
|
11月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
|
JavaScript C++ 容器
【Azure Bot Service】部署NodeJS ChatBot代码到App Service中无法自动启动
2024-11-12T12:22:40.366223350Z Error: Cannot find module 'dotenv' 2024-11-12T12:40:12.538120729Z Error: Cannot find module 'restify' 2024-11-12T12:48:13.348529900Z Error: Cannot find module 'lodash'
189 11
|
资源调度 前端开发 JavaScript
vite3+vue3 实现前端部署加密混淆 javascript-obfuscator
【11月更文挑战第10天】本文介绍了在 Vite 3 + Vue 3 项目中使用 `javascript-obfuscator` 实现前端代码加密混淆的详细步骤,包括安装依赖、创建混淆脚本、修改 `package.json` 脚本命令、构建项目并执行混淆,以及在 HTML 文件中引用混淆后的文件。通过这些步骤,可以有效提高代码的安全性。
1455 2
|
JavaScript 应用服务中间件 Linux
宝塔面板部署Vue项目、服务端Node___配置域名
本文介绍了如何使用宝塔面板在阿里云服务器上部署Vue项目和Node服务端项目,并配置域名。文章详细解释了安装宝塔面板、上传项目文件、使用pm2启动Node项目、Vue项目打包上传、以及通过Nginx配置域名和反向代理的步骤。
4707 1
宝塔面板部署Vue项目、服务端Node___配置域名
|
前端开发 JavaScript 安全
vite3+vue3 实现前端部署加密混淆 javascript-obfuscator
【11月更文挑战第7天】本文介绍了在 Vite 3 + Vue 3 项目中使用 `javascript-obfuscator` 实现前端代码加密混淆的详细步骤。包括项目准备、安装 `javascript-obfuscator`、配置 Vite 构建以应用混淆,以及最终构建项目进行混淆。通过这些步骤,可以有效提升前端代码的安全性,防止被他人轻易分析和盗用。
2734 0
|
JavaScript 前端开发 Windows
NodeJS的环境部署
介绍如何在Windows操作系统上安装Node.js环境,包括下载长期支持版本的Node.js、安装程序、编写测试代码并执行,以及如何在WebStorm集成开发环境中配置和运行Node.js。
197 1