gpt4 book ai didi

node.js - 如何使用 NPM 打包部署?

转载 作者:搜寻专家 更新时间:2023-11-01 00:01:40 24 4
gpt4 key购买 nike

我开发了一个位于基于 Node 的项目中的 Angular 网站。 Gulp 用于将源构建到站点的开发和生产版本中。该项目包括一个 ExpressJS 服务器,可以为文件的开发或生产版本提供服务。 现在我想以 CI 方式构建和部署网站。

我有一个私有(private) NPM 注册表,我可以将整个项目模块发布到该注册表。简单的路线是:

  1. 在构建环境中,查看项目仓库
  2. npm 安装
  3. 通过测试
  4. npm 发布
  5. 在生产环境中..
  6. npm 安装项目
  7. 为生产而构建
  8. 在新建的产品文件上运行服务器

但这似乎不对。我不应该将生产文件作为构建过程的一部分输出,并使用 NPM 将这些 作为版本化工件发布吗? 是否有可接受的不同方式来发布用于开发和部署的 NPM 模块?

或者我是否在生产环境中构建我的源代码?这不是违背了 NODE_ENV=production 的目的吗?

最佳答案

这取决于您托管服务器的位置。

如果想部署到heroku,可以关注https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction并安装 gulp 构建任务 https://github.com/appstack/heroku-buildpack-nodejs-gulp .基本上,您会将要部署的版本推送到 heroku 的 git 服务器,它会自动触发 dev 或 prod 的构建过程并启动 express 服务器。假设您已经在项目中使用 git,只需添加一个新的远程服务器即可。

如果您想部署到 Amazon 的弹性 beanstalk,它会稍微复杂一些,但归根结底就是将您的应用程序代码推送到服务,这将触发主机实例中的构建过程。

如果您想在您的环境中部署它,您仍然可以使用 git push 和 git hook 来触发部署。查看How can I automatically deploy my app after a git push ( GitHub and node.js)?用于各种实现。

关于您的问题“我不应该将生产文件作为构建过程的一部分输出,并使用 NPM 将它们发布为版本化工件”:您可以,但这不是大多数人所做的。只要您的构建过程是可重复的,就没有理由打包和发布应用程序的构建版本。我在这里假设您正在构建一个应用程序而不是一个可重用的库,在这种情况下情况会有所不同。

关于node.js - 如何使用 NPM 打包部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28640795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com