问题标签 [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.
typescript - monorepo 中的打字稿路径别名
我有一个使用 Typescript 并具有以下结构的纱线工作区的 monorepo 设置:
包B使用包A中的资源。我希望能够做的是:导入并packageA/src
在packageB/src
packageB的编译过程中自动将路径更改为packageA/lib
(A的编译版本)。
我尝试在 tsconfig 中设置路径配置,例如:
但是编译版本没有任何变化。他们反正我能做到吗?
yarnpkg - 如何正确删除纱线工作区?
package.json
我在eg中配置了 2 个工作区example
,gatsby-theme
但后来我发现我实际上是在开发一个 gatsby-starter,所以我example
从package.json
.
我想知道我是否将所有文件从gatsby-theme/
项目根目录移动并package.json
用 's 覆盖和其他文件gatsby-theme
,它是否成为可以同时使用npm
和管理的项目yarn
?
git - 在纱线工作区中运行“git clean -xdf”时,跟踪文件被删除
git clean -xdf
在带有 yarn 工作区的 repo 中运行时,工作区的内容将被删除。
考虑这个文件夹结构:
- 工作区1
- index.js
- 包.json
- 工作区2
- index.js
- 包.json
- .gitignore
- 自述文件.md
- 包.json
- 纱线锁
运行git clean -xfd
粗体文件(跟踪的源代码控制文件)后被删除!即使 clean 根本不应该影响跟踪的文件。
我相信这是一个纱线工作区错误。我打开了一个问题@yarn: https ://github.com/yarnpkg/yarn/issues/7536
有没有人遇到过这个错误?有没有人有解决方法或知道这种行为的根本原因?
对于有兴趣亲眼看到该错误的任何人,我创建了一个使其易于重现的存储库: https ://github.com/Shmulik-Kravitz/yarn-with-git-bug
重现的步骤在里面。
输出yarn --verbose
(很长):
https ://github.com/Shmulik-Kravitz/yarn-with-git-bug/blob/master/yarn%20log
输出git clean -xdf
:
输出git status
:
typescript - 打字稿在编译时不排除 node_modules
每次尝试构建代码时都会出现此错误,而且我忘记告诉我正在使用纱线工作区,并且我在所有 tsconfig 中都排除了 node_modules
实际错误:
即使我排除了 node_modules 和 skipLibCheck:true,我也无法使其工作,但似乎没有任何帮助
我的 tsconfig.json
我想编译它时没有错误并排除 node_modules 中的 .d.ts 文件
typescript - 如何避免在带有共享包的 monorepo 中跳转到 d.ts
我使用 Yarn 工作区创建了一个打字稿 monorepo。一个包“公用”由其他包共享。
它的 package.json 配置如下:
每当我使用“转到定义”或 cmd+单击 VSCode 中的函数时,它会将我带到 d.ts 文件而不是原始的打字稿定义。这真的伤害了我的工作流程。
在我将 main 简单地设置为 TS 源文件之前,它适用于跳转到功能,但它不可部署,因为在部署期间某些包是在云中构建的,因此需要使用常规 javascript / 发布通用包NPM 接口使其工作。
有针对这个的解决方法吗?
javascript - 纱线链接所有包/工作区
Yarn 的链接允许您注册一个本地包以符号链接到另一个本地包。要使用link
你 cd 进入包目录并运行yarn link
. 这适用于单个包,但是我有一个 monorepo,使用 Yarn 的工作区和 Lerna。有很多包,我想要一种简单的方法来链接 monorepo 中的所有包。
我的package.json
:
我的lerna.json
:
是否有一种简单的方法可以在每个包上运行yarn link
(和)?yarn unlink
node.js - Yarn 工作区问题:Yarn 决定在工作区中“放置”一些依赖项,而不是在“根”node_modules 文件夹中
我有一个由两个工作区组成的项目:
- 客户端(Angular 8)
packages/client
- 服务器(NestJS)在
packages/server
这是根package.json
:
这是问题所在:出于某种原因,在向客户端和/或服务器添加了一些依赖项(来自 Angular 和 NestJS 的依赖项)之后,Yarn 决定将依赖项移动@nestjs
到packages/server/node_modules
而不是将其放在根node_modules
文件夹中。那就是将依赖项从node_modules/@nestjs
移至packages/server/node_modules/@nestjs
。
内容packages/client/package.json
:
内容packages/server/package.json
:
expo - 如何解决来自monorepo中共享包博览会项目的导入
我从我的包内的打字稿文件的共享包中导入mobile
,目前正在使用expo-yarn-workspaces;
但是在运行时expo start --clear --web
会抛出一个错误
模块解析失败:意外令牌 (6:7) 您可能需要适当的加载程序来处理此文件类型。| const ButtonTypes = tuple("outlined", "primary", "danger", "link");
react-native - 在 monorepo 中设置 react-native 时出现捆绑错误
我在使用工作区的 yarn monorepo 中设置新的 react-native 项目时遇到了一些问题。我的根 package.json 看起来像:
当我运行yarn run-ios
构建成功但我得到捆绑器错误:
该bugsnag-react-native
文件夹确实存在于根目录中node_modules
有谁知道这里可能发生什么/如何解决它?
我正在使用纱线版本1.19.0
lerna - 在 monorepo 中的两个项目之间共享 typescript 代码(与本地相同)
我一直在尝试在两个 repos 之间共享代码,所以我了解使用 lerna 和 yarn 工作区的 monorepo 方法。
但是以这个例子为例:假设我在一个 monorepo 中有 2 个反应项目。他们共享代码,假设他们共享:
components, utils, modules, redux reducers/actions
为什么我不能创建一个“共享文件夹”然后能够像我在本地一样导入这些模块。
import LoginComponent from '@shared/components/login/LoginComponent'
据我了解,不可能像上面那样做?当您因导入 @shared 存储库而丢失文件夹结构并且必须导出索引中的所有内容时
所以我想我可以在根目录添加一个package.json,@shared/*
但我只有一层目录用于结构。
不能简单地从 monorepo 中项目之间的共享目录导入似乎有点奇怪?这是出于任何原因还是我错过了什么?
或者然后导入代码有什么问题,例如:
import LoginComponent from '../../../shared/components/login/LoginComponent'
?
共享将在其中/packages