繁体   English   中英

如何使用NPM打包部署?

[英]How to use NPM to package a deployment?

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

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

  1. 在构建环境中,查看项目存储库
  2. npm install
  3. 通过考试
  4. npm publish
  5. 在生产环境中..
  6. npm install project
  7. 为生产而建
  8. 在新构建的prod文件上运行服务器

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

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

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

如果要部署到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,那么只需添加一个新的遥控器即可。

如果你想部署到亚马逊的弹性beanstalk,它会有点复杂,但这一切都归结为将你的应用程序代码推送到服务,这将触发主机实例中的构建过程。

如果要在环境中部署它,仍然可以使用git push和git hook来触发部署。 查看如何在git push(GitHub和node.js)后自动部署我的应用程序? 用于各种实现。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM