我可以(也应该)使用Lerna而不发布到NPM吗?

时间:2020-03-14 12:03:51

标签: javascript reactjs lerna

我有一个应用程序,并且有一个故事书。他们俩目前都住在同一个应用程序中。我刚刚安装了Lerna并在其中玩耍,所以我可以将它们都视为2个独立的软件包。

两个软件包都将被docker化,当我构建一个软件包时,它不应该对另一个软件包做任何事情

到目前为止,我的结构:

app/
  package.json
  lerna.json
  makefile
  packages/
    my-app/
      all-relevant-packages-for-my-app
      package.json
    storybook/
      all-relevant-packages-for-storybook
      package.json

我不想将任何内容发布到NPM。我只是想单独使用这些软件包,但我想将app组件导入storybook

莱娜(Lerna)在这里使用正确吗?

当我说docker build my-app时,它应该进入my-app仓库中,然后构建docker映像等,运行测试并将我的应用程序部署到S3(这已经全部设置),但是现在我我想知道Lerna是否是正确的工具,因为我看到了很多有关发布到NPM的信息,

1 个答案:

答案 0 :(得分:1)

您不必使用Lerna。我建议您使用Yarn工作区。让我们安装yarn,然后添加

"workspaces": [
   "packages/*"
 ],

部分到您的主package.json文件。从现在开始,yarn将处理软件包的依赖关系。

根据您的情况-请输入package.json中的my-app,然后将其名称更改为`@ app / my-app'。在package.json中检查my-app的版本(我现在假定为1.0.0)。

storybook进行更改,例如将其名称更改为@app/storybook。然后,您可以在故事书的package.json文件中添加依赖项:

"dependencies": {
   "@app/my-app": "1.0.0"
   ...
}

返回到根目录app并运行yarn命令。它将解决所有软件包的所有依赖关系。现在,您无需使用Lerna就可以在故事书中使用my-app。