创建monorepo而不托管程序包注册表并通过bitbucket安装

时间:2019-07-30 16:06:42

标签: javascript git npm lerna monorepo

在我的组织中,我们正在尝试创建反应组件的单一仓库,以便可以在多个站点上使用它们。

我们目前在bitbucket上托管了一个名为react-components的仓库,我们想使用lerna.js将其设置为monorepo,这样结构看起来像

packages
    package_1
         package.json
         dist
    package_2
         package.json
         dist

但是,我们不是将npm软件包托管在注册表中,而是将其存储在bitbucket上,然后从那里安装

所以我希望能够通过package.json之类的方式将每个软件包安装到我们的网站中

"@company_name/react_components/package_1": "git+ssh://git@bitbucket.ds.company_name.com:7999/np/react-components.git#personal/jdaly/testBranch",

但是我不认为你可以在package.json中有该路径 所以应该更像

"@company_name/react_components": "git+ssh://git@bitbucket.ds.company_name.com:7999/np/react-components.git#personal/jdaly/testBranch",

并像

一样导入
import package_1 from "@company_name/react_components"

是否可以在不使用软件包注册表的情况下设置monorepo,而仅通过git链接导入所有monerepo软件包?在网络上找不到太多信息

我遵循了本教程https://blog.npmjs.org/post/186494959890/monorepos-and-npm 但是您仍在通过软件包注册表导入模块/软件包,而不是感谢通过git链接进行安装

构建软件包后,将其推送到仓库 在我的网站package.json中,我像这样引用它

"@company_name/react-components": "git+ssh://git@bitbucket.ds.comapany_name.com:7999/np/react-components.git#personal/jdaly/firstCommit",

当我进入node_modules时,结构为

node_modules
     @company_name
          react_components
               packages
                    package_1
                    package_2
                    package_3
               lerna.json
               package.json

应该是

node_modules
     @company_name
          react_components
                    package_1
                    package_2
                    package_3

任何帮助表示赞赏

2 个答案:

答案 0 :(得分:2)

对于任何偶然发现此问题的人-答案很简单。为了使用lerna并创建monorepo系统,您需要具有程序包注册表。可能是NPM或其他类似https://verdaccio.org/的产品,它实际上是可以在本地使用的软件包注册表

答案 1 :(得分:0)

尝试以下操作:

npm install git+ssh://git@bitbucket.org/{user}/{repository}.git

来源: