对于那些npm
背景的人来说,这篇文章是maven
的见解。
在Java/maven
世界中,您为jar构建源代码,然后将jar推送到Nexus。 所有这一切都是使用maven
完成的
最终,您的部署工具将从存储在Nexus中的jar中检索您的jar,并将其传递到它所针对的任何环境。
现在我正在开展Angular项目并且很难将所有部分组合在一起。
我知道我可以将我的Angular项目发布到Nexus中的npm存储库。但我将在这里发布的是一个npm包,包括一个package.json
文件
我知道我可以将我的Angular项目构建到/dist
文件夹,并将此文件夹传递给环境。
但现在,我不明白这一切是否有意义:使用maven
背景,我希望使用npm
将/dist
的内容推送到Nexus !
我在这里缺少什么?这个领域有哪些好的做法?
答案 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 build 和 cp 命令组合到 dist 文件夹中。
问题:您还应该像这样在 package.json 中提供 publishConfig:
“发布配置”:{ "registry": "https://your-nexus-url/repository/npm-registry/" }
最后,您应该将 npm 令牌添加到 .npmrc 文件中。
我已将其集成到 Jenkins 和 Nexus 的生产项目中,希望对您有所帮助。