问题标签 [yarn-workspaces]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
84 浏览

reactjs - React-native yarn workspaces/wml 不加载包含已安装包的导入模块

我尝试使用工作区实现 react-native,以在移动和 Web 应用程序之间共享业务逻辑,它在 Web 上运行良好,但它不起作用,甚至无法在 react-native 上加载文件。我最终使用了 wml,但它无法从正在导入 axios 之类的包的共享包中加载文件……尽管这些包已经安装在那里,并且它在 web 上按预期工作。

0 投票
2 回答
1769 浏览

reactjs - 在故事书 monorepo 中提供静态资产

我有一个使用故事书的 lerna + yarn 工作区 monorepo。
每个包/组件都有自己的 /assets 文件夹,其中包含以下静态图像:

/packages
     /component1
            /assets
                  ... 静态图片
            index.tsx
     /component2
            /assets
                  ... 静态图片
            index.tsx

在官方文档中,它说包含-s选项,但它仅适用于单个通用资产文件夹,而不适用于每个包: start-storybook -p 6006 -s assets

如何为每个组件提供故事书中的这些静态资产?

0 投票
0 回答
1317 浏览

typescript - 如何在 lerna + yarn 工作区 monorepo 中配置 jest + 酶

我正在尝试建立一个 Lerna + yarn 工作区 monorepo。我已经配置好软件包并且构建良好,但是在设置我的测试环境时遇到了很多麻烦。

在项目内部,我使用 webpack、babel 和 typescript。我想用 jest、babel-jest 和酵素进行测试。

每当我尝试运行包含酶玩笑的测试时,我都会收到带有以下详细信息的“玩笑遇到意外令牌”错误:

我的组件:

monorepo/packages/core/src/button/button.tsx

我的测试

monorepo/packages/core/src/button/button.test.tsx

酶设置:

monorepo/packages/core/src/setupEnzyme.ts

笑话配置:

monorepo/packages/core/jest.config.js

通天塔配置:

monorepo/packages/core/babel.config.js

配置:

monorepo/tsgonfig.json

核心包.json:

monorepo/packages/core/package.json

根包.json:

monorepo/monorepo/package.json

我的问题是我的酶测试设置哪里出错了?

0 投票
1 回答
914 浏览

typescript - monorepo 中的后端打字稿:如何获取 docker 的依赖项?

我在 yarn-workspaces monorepo 中有一个项目,包含前端、后端和常用包。全部在打字稿中。

构建和运行前端很好;它使用 webpack 创建一个dist/我可以部署的目录。后端应该更容易,因为它只是 typescript -> node.js。我可以tsc将生成的目录打包dist到我的 docker 映像中……除了node_modules依赖项。我怎样才能获得所需的依赖项dist?我不想要一个包含所有转译和花哨的东西的完整捆绑器。

有些人使用多阶段 docker 来创建构建(通过yarn install --production在新的 docker 构建映像中运行,因此它不是 monorepo 的一部分);这对我来说似乎有点矫枉过正,而且以这种方式进行调试似乎更难,因为您无法从开发机器上运行实际的构建。

我想要一个生成工作dist文件夹的工具,我可以用 docker 或任何其他方法打包该文件夹。有没有一种简单的方法可以做到这一点?

0 投票
0 回答
289 浏览

javascript - WebStorm2019.2.1 + Flow - 无法在使用 Yarn 工作区的 monorepo 中解析模块“XYZ”

根据标题,我似乎无法在Yarn Workspaces环境WebStorm 2019.2.1中使用 Flow 。我的大部分文件导入(但奇怪的是不是全部)都显示了这一点:

屏幕截图导入不起作用

如您所见,reactFlow 正确识别了导入,而styled-components没有正确识别导入。

请注意,运行yarn run flow不会导致错误。此外,自动完成和Cmd + Click导入工作完美。

值得一提的是,我遵循了 JetBrains 指南,了解如何使用 WebStorm 设置 Flow(此处),以下是我.flowconfig文件的内容:

0 投票
0 回答
228 浏览

reactjs - React & react-native monorepo:node_module 导入问题

我已经建立了一个带有纱线工作区的 monorepo,其中包含一个 react & react-native 应用程序。这是结构:

为了在两个应用程序之间共享逻辑,表示组件被包装在ExampleComponentContainer.jswhich importExampleComponent.native.jsExampleComponent.js中,具体取决于捆绑器。我将 redux 和 react-redux 添加到共享包package.json中,并将它们导入 ExampleComponentContainer.js 和两个应用程序的入口点 App.js。虽然 webpack 从根 node_modules 文件夹导入模块没有问题,但如果我将它们指定为,metro 只会为 react-native 应用程序挑选它们

只是使用

不工作。这是我得到的错误:

iOS 错误信息

这是我的 metro.config.js:

感谢任何提示如何解决这个问题。

0 投票
1 回答
968 浏览

git - 使用来自 monorepo 的纱线工作区作为 git 模块

假设我有一个配置为

是否可以将pkgCfromrepoX用作 git 子模块repoY

约束:

  • repoX并且repoY是私人的
  • pkgABC是纱线工作区
  • repoX不应repoY仅对用户完全可访问pkgC
0 投票
1 回答
161 浏览

yarnpkg - 安装纱线时禁止纱线检查版本

我在离线计算机上运行纱线,当我运行时yarn add xxx很慢,因为它从 yarnpkg.com 读取纱线版本。如何禁止这个。

0 投票
1 回答
2053 浏览

reactjs - 纱线工作区、反应、monorepo 问题与冲突库版本

我正在尝试使用纱线工作区 monorepo。它由一个用 . 创建的 TestProjectcreate-react-app和一个用 . 创建的 SharedLib1 组成create-react-library。TestProject 从 SharedLib1 导入代码。问题是,TestProject 使用 react-scripts 3.3.0,它依赖于 babel-jest ^24.9.0,而 SharedLib1 使用 react-scripts-ts ^2.16.0,它依赖于 babel-jest 22.4.4。在 TestProject 中运行yarn start时,它会抱怨:

我可以通过SKIP_PREFLIGHT_CHECK=true在 TestProject 中设置或手动升级 SharedLib1 中的 react-scripts 来禁用该错误,但我想知道是否有更好的方法来处理这个问题。

myMonoRepo 的 Package.json:

myMonoRepo 的 Package.json:

以及测试代码App.tsx:

在 TestProj 的 node_modules 中有一个 babel-jest 24.9.0,在 myMonoRepo 的 node_modules 中有另一个 22.4.4

0 投票
1 回答
79 浏览

reactjs - 如何在 react-native 应用程序中使用 react 应用程序的后端、动作和减速器?

我有一个反应应用程序,它的服务器、动作和减速器都在一个目录中。我在另一个目录中也有一个 react-native 应用程序的屏幕。如何连接 react 应用程序的操作和减速器以与 react-native 应用程序一起使用?一般来说,共同开发 react 和 react-native 应用程序的最佳方式是什么?

我的工作区结构如下:

我按照以下步骤操作:

在客户端目录中创建 package.json,内容如下:

通常我创建了以下package.json:

然后在客户端目录中,我运行了 yarn install,并将所有对现在所在目录的导入引用更改为,common而不是我之前common/dirName的相对路径。../dirName但我得到common/dirName无法解决。我究竟做错了什么?