创建一个 monorepo 而不托管在包注册表上并通过 bitbucket 安装

Posted

技术标签:

【中文标题】创建一个 monorepo 而不托管在包注册表上并通过 bitbucket 安装【英文标题】:creating a monorepo without hosting on a package registry and installing via bitbucket 【发布时间】:2019-12-08 02:11:09 【问题描述】:

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

我们目前在 bitbucket 上托管了一个名为 react-components 的 repo,我们希望使用 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 链接导入所有的monorepo 包?网上没找到太多资料

我跟着这个教程https://blog.npmjs.org/post/186494959890/monorepos-and-npm 但是您仍然通过包注册表导入模块/包,而不是感谢通过 git 链接安装

在我构建我的包后,我将它们推送到 repo 在我的网站 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

任何帮助表示赞赏

【问题讨论】:

也许你可以改进你原来的问题,我不清楚你在问什么。 现在的主要问题是粗体字,是否可以在不使用包注册表的情况下设置 monorepo 并通过 git 链接导入包?网上没找到太多资料 【参考方案1】:

对于偶然发现这个问题的任何人 - 答案很简单。为了使用 lerna 并创建一个 monorepo 系统,您需要有一个包注册表。这可能是 NPM 或其他产品,例如 https://verdaccio.org/,它本质上是一个可以在本地使用的包注册表

【讨论】:

【参考方案2】:

尝试以下方法:

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

来源:

npm-install-modules-from-bitbucket-private-repositories git-urls-as-dependencies How-can-I-install-an-npm-package-from-my-bitbucket-repository

【讨论】:

我们已经有用于安装包的现有私有仓库 - 但我们没有设置任何与安装单个节点包不同的 monorepo 设置

以上是关于创建一个 monorepo 而不托管在包注册表上并通过 bitbucket 安装的主要内容,如果未能解决你的问题,请参考以下文章

CoreData手动创建托管对象子类时报错

使用 Autotools 在包中添加 .c 文件而不编译它们

如何设置阻止恶意网站转发到我的网站(我的网站建立在 gatsby 上并托管在 netlify 上)

如何在包json或其他方式中使用env变量

SREWorks前端低代码组件生态演进:monorepo架构重构和远程组件加载实践

使用 C#/托管代码为免注册 COM 互操作设置 DLL