问题标签 [lerna]
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 - 使用 yarn 工作区和 lerna 优先构建顺序
我在一个单一存储库中有这个大型打字稿项目,使用yarn workspaces
并lerna
具有以下架构:
我package.json
看起来像:
我的lerna.json
样子:
现在我需要Libs
在两者之前构建所有共享Apps
,Services
因为它们对它有依赖关系。但是当我运行yarn build
并触发它时lerna run build
,它似乎build
以随机(?)顺序触发了该过程,因此它无法构建,因为库“还不存在”。
有没有办法设置如何lerna
触发构建的顺序?
reactjs - Monorepo 中未安装模块
对于一个新项目,我正在使用 Lerna 和 React Storybook。我想创建一个包含多个包的 monorepo。
我的文件夹结构如下所示:
我想从我的按钮包中的主题包中导入主题,我通过 npm 在我的按钮包中安装它。
在我的按钮包中,我正在导入主题
import theme from '@company/company-theme';
我收到以下错误:
Module not found: Error: Can't resolve '@company/company-theme' in buttonpath
起初我认为这是一个 babel 问题,我在 package.json 中安装了以下 babel 包
在 projectroot 和按钮根目录中,我创建了一个.babelrc
并添加了以下代码:
然而问题仍然存在。这里有人知道该怎么做吗?
javascript - 从另一个文件导入 Typescript 中的接口
如何从另一个文件导入接口?
如果我使用type
我可以执行以下操作:
而interface
它抱怨它不是命名空间[ts] Cannot use namespace 'Branch' as a type.
:
项目结构:
抱歉,我无法发布 repo,但这是我们的设置。我们正在使用 lerna,所以我们在index.d.ts
文件中声明模块,例如declare module "@shared/branch"
. 看起来 tslint 找不到正确的接口导出所以抱怨。代码按预期编译和运行
node.js - 在 yarn/lena monorepo 中管理多个 js 项目
我有一个看起来像这样的纱线工作区 monorepo:
我正在使用很棒的纱线工作区,但是有没有关于管理启动服务等的工具。
例如目前,为了启动前端,我必须:
目前,我在控制台上的单独选项卡中启动所有内容。
它非常笨拙,可以用更好的方法来做。
typescript - 如何使用 Typescript 的引用和构建模式将 mono repo 编译为无服务器包?
Typescript 最近引入了一个与 monorepos 一起使用的新功能:引用。通过指定引用,您可以使用构建所有相互依赖的包tsc -b
(另请参阅此博客文章)
这似乎非常适合与大型单声道存储库一起使用,其中一些包是无服务器服务。这些服务通常依赖于一个或多个 monorepo 包。我在这里创建了一个示例:
https://github.com/tommedema/serverless-mono-example
虽然构建与 .zip 配合得很好tsc -b
,但问题是无服务器框架需要上传单个工件 .zip(在我的例子中是到 AWS)。在构建无服务器服务时,例如这个示例,只会捆绑最近源文件的编译文件。
如何使用 typescript 的引用功能与无服务器单声道存储库一起使用?
node.js - npm update 仅更改了依赖项的依赖项
有没有办法更新依赖项 A 的依赖项(无需重新安装依赖项 A 包)?
我正在尝试创建一个更快的工作流程,并有一个脚本将我正在处理的某些包的所有dist/
文件夹和package.json
文件复制到一个示例项目中以进行端到端测试,但是该脚本不会更新任何嵌套的依赖项和我正在寻找一种方法来更新这些。
我已经尝试过像'verdaccio'这样的解决方案,但我希望加快速度,但不是每次我想测试某些东西时都上传和重新安装整个包组。
package.json - 从嵌套的 Lerna 包中删除依赖项
我有一个 lerna 设置,其中的n
包位于packages/
. 让我们举一个例子,其中一个包使用 express 而其他包不使用。
如何以 lerna 感知的方式从此包中删除 express,以便更新根 package.json?
我可以添加包,lerna add --scope
但似乎没有相应的删除功能。
typescript - 如何将ts文件编译成js到特定目录
我尝试使用 tsc 命令编译 typescript 文件,并使用 lernajs 来管理多包存储库。我的目录结构如下:
编译后的目录结构应该如下(生成的Build目录):
正如我所说,我将 tsc 与 lerna 一起使用。我已经尝试了很多选项,但是,构建目录是在模块目录之外创建的。
json - TypeScript 包中缺少资源文件
我有一个 Lerna 项目,其中包含两个 Typescript 包 A 和 B。这tsconfig.json
两个包都是:
包 A 包含以下代码:
包 B 依赖于包 A。在包 B 中调用了包 A 导出的函数,因此加载了上述代码。但是,我Error: Cannot find module './myData.json'
在这种情况下。现在,查看包 AI 的编译器输出目录,看不到 JSON 文件。事实上,node_modules
在包 AI 中查看包 B 的目录也看不到该文件。
为什么 JSON 文件可能会从已发布的包中丢失?在 Typescript 包中包含资源文件(JSON、纯文本)需要做些什么特别的事情吗?
lerna - 在 lerna 中导入项目时遇到问题
我正在尝试将我的第一个项目导入 lerna 存储库并收到以下错误:
flatten
如果我使用标志 运行导入命令,我会收到以下错误:
我还在他们的 github repo 上发布了一个问题:https ://github.com/lerna/lerna/issues/1644
我应该寻找什么?
在此先感谢,丹