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

标签 javascript git npm lerna monorepo

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

我们目前有一个名为 react-components 的 repo 托管在 bitbucket 上,我们想使用 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 链接安装


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

任何帮助表示赞赏

最佳答案

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

关于javascript - 创建一个 monorepo 而不托管在包注册表上并通过 bitbucket 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57275816/

相关文章:

git - git diff 中提交参数的顺序

git - .npmignore 和 .gitignore 有什么区别?

node.js - 处理重复的 npm 包

javascript - Material-UI Popover 组件确实会触发 onClose 事件

javascript - 在数据表上填充数据不起作用

javascript - 表单 Action onclick 无需使用 Ajax 刷新

node.js - 无法使用 Node.js 和 Crontab

javascript - iPhone 自动化 - 如何在 "a.js"中导入 "b.js"?

git - 在 Git 中切换 diff 算法会导致任何问题吗?

python - Django 和 Github 上的数据库管理