将ember插件发布到本地NPM注册表以用于开发人员构建?

时间:2016-08-01 16:38:07

标签: npm nexus ember-addon npm-publish

我如何支持这些NPM / ember插件方案?

  • 开发人员构建ember插件A并使用使用其本地包
  • 的build ember应用程序B.
  • 开发人员仅从我们的nexus NPM集成存储库构建B安装A
  • 构建系统构建ember addon安装到我们的nexus NPM版本库

的Maven

  • 开发人员桌面将安装包构建到本地仓库,以便稍后在构建中使用。
  • 构建系统构建部署包到我们的内部共享仓库以供开发人员使用,这样他们就不需要构建所有

NPM

  • 构建系统构建可以使用 npm publish --registry http://ourrepo/nexus/ .... 发布到私人注册表中
  • 开发桌面版本做????

我们可以将DependsOnMe与相对路径一起使用,但这需要我们设置某种规则,其中构建在本地工作,而另一种在构建机器上工作。

虽然可能,但我希望有一个更优雅的解决方案来实现这一目标。

我是否可以让开发人员生成进入本地npm缓存的软件包供以后使用?如果是这样,你能指点我那个文档吗?

相关

1 个答案:

答案 0 :(得分:0)

因为我们使用maven前端插件来管理npm和ember,我们可以将一个额外的npm模块(在这种情况下是一个ember插件)封装为maven工件,并为我们的各种场景使用maven依赖管理

Ember添加模块

  • 添加'npm pack'以在npm存储库中生成本地包(在我们的例子中为root / target / tmp / .npm //)
  • 添加程序集以生成包含tar文件的tar.gz(有点傻)并将其作为工件附加到模块(类型:tar.gz,classifer:ember-addon)

客户端模块

  • 添加maven-dependency-plugin unpack,解压缩addon模块的tar.gz分类器:在npm执行此模块之前将ember-addon添加到目标/ ember-addons
  • 修改package.json以使用本地依赖“our-addon”:“file:../../ target / ember-addons /// package.tgz”

如果用户构建了ember和client,则addon模块构建将工件放置在本地maven存储库中。客户端模块从本地存储库解压缩,并通过npm ember构建过程拉入node_modules。

如果用户只构建客户端,则客户端模块在解压缩和使用阶段之前从我们的nexus存储库中获取插件工件。