Angular,npm,nexus和CI实践

时间:2018-03-05 16:35:57

标签: angular npm deployment nexus dev-to-production

对于那些npm背景的人来说,这篇文章是maven的见解。

Java/maven世界中,您为jar构建源代码,然后将jar推送到Nexus。 所有这一切都是使用maven 完成的 最终,您的部署工具将从存储在Nexus中的jar中检索您的jar,并将其传递到它所针对的任何环境。

现在我正在开展Angular项目并且很难将所有部分组合在一起。

我知道我可以将我的Angular项目发布到Nexus中的npm存储库。但我将在这里发布的是一个npm包,包括一个package.json文件 我知道我可以将我的Angular项目构建到/dist文件夹,并将此文件夹传递给环境。

但现在,我不明白这一切是否有意义:使用maven背景,我希望使用npm/dist的内容推送到Nexus !

我在这里缺少什么?这个领域有哪些好的做法?

2 个答案:

答案 0 :(得分:2)

经过一些研究后,我对这个主题的理解是:

使用ng build编译后,您的Angular项目不再是npm项目,而是静态网站 您可能不再像使用npm一样使用maven管理(在这种情况下:"部署"到Nexus)您的项目。

因此(引用jonrsharpe的评论),您可以压缩/dist生成的ng build文件夹的内容以进行分发。

此时,如果您希望将其推送到Nexus存储库,则可以使用 maven deploy plugin 。但是,您的网站将被推送到maven存储库。

底线:这完全取决于你需要做什么。

我希望这会有所帮助。

答案 1 :(得分:0)

在 Angular 应用程序中使用 npm publish 总是可行的使用 maven deploy 插件。您应该首先运行 ng build,然后将 package.json 复制到 dist 文件夹。您可以创建一个特定的构建脚本,将 package.json 的 ng buildcp 命令组合到 dist 文件夹中。

问题:您还应该像这样在 package.json 中提供 publishConfig:

“发布配置”:{ "registry": "https://your-nexus-url/repository/npm-registry/" }

最后,您应该将 npm 令牌添加到 .npmrc 文件中。

我已将其集成到 Jenkins 和 Nexus 的生产项目中,希望对您有所帮助。