我是新来的.js编程和我最近使用(express、主干网和其他免费的视图技术,以及mongoDB)创建了一个示例web应用程序.现在,我想在一个登台环境中部署相同的应用程序,但我不确定如何打包这个应用程序并分发相同的应用程序.[我可以处理mongoDb并单独设置它]

我来自Java世界,在那里我们为可重用的LIB创建JAR,为部署在servlet容器中的web应用程序创建war/ear包.现在在本例中,从 node 开始.js本身也是一个web容器,我该如何打包我的webapp?

  1. 是否有使用express构建的打包 node WebApp的标准格式/指南?(是否有类似的jar/war node 应用打包系统?)
  2. 打包后如何部署?既然它也是自己的容器,它会变成exe吗?

PS:到目前为止,我正在考虑将所有必需的源文件手动复制到登台环境中,并运行npm命令下载该机器上的所有依赖项,然后使用"永久"或其他机制来运行我的服务器.js.(另外,添加一些监控,以防应用程序崩溃并永远失败)我不确定这是不是正确的方法?我相信一定有某种标准化的方法来解决这个问题.

推荐答案

没有标准化的方法,但你走在正确的轨道上.如果你的package.json是最新的并且保存完好,你可以将你的应用程序目录复制/压缩/克隆到生产系统,不包括node_modules.

在你的生产系统上,运行

我认为最近的一些幻灯片很有帮助,其中还包括像"永远"这样的包装主题.

Node.js相关问答推荐

Sveltekit停靠的应用程序找不到从Build导入的包

PEAN auth 应用程序:为什么 Angular 拦截器总是使用BehaviorSubject 返回 null(即初始值),而不是更新后的值?

如何在 Firestore 函数上使用类型模型来获取字段值

mongoose findOneAndUpdate 不更新数据库

登录用户并获取他们的个人资料

从 Response.json() 返回的 JSON 似乎无效?

Axios 响应循环通过函数只返回第一个映射对象的结果

将 express js app.use() 移动到另一个文件

Mongoose-更新嵌套数组

'{ id: string; 类型的参数}' 不可分配给FindOneOptions类型的参数

如何从 github 编译第三方扩展?

为什么我在生产环境中 deproy Next.js 示例项目时 CSS 不起作用?

如何promise AWS JavaScript 开发工具包?

Ansible 将以什么用户身份运行我的命令?

Chrome 浏览器未将 if-modified-since 标头发送到服务器

为什么 Node 控制台不显示功能代码?

Express.js中的bodyParser.urlencoded({extended: true }))和bodyParser.json()是什么意思?

node.js 找不到模块mongodb

node.js 服务器和 HTTP/2 (2.0) 与 express.js

yarn 和 npm 的主要区别是什么?