问题标签 [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 投票
0 回答
1071 浏览

node.js - 使用 webpack 将 typescript 编译为 js 并保持目录结构

我希望 webpack 将我的 typescript 节点项目编译成 js,但我希望它保持目录结构而不是捆绑到 1 个文件中。

这可能吗?

我的结构是:

我希望它编译为:

目前我的配置是这样的:

用 webpack 可以吗?

我不能使用只是tsc因为我有一个纱线工作区 monorepo,而且我可能有一个这样的链接参考:

import {something} from '@my/package';

@my/package在 npm 中不存在,仅存在于 monorepo 的上下文中,我可以使用 node externals 和 webpack 将其包含在包中我认为我不能以这种方式保持文件夹结构。

新的 typescript 3.0 项目引用会解决这个问题吗?

0 投票
2 回答
3096 浏览

lerna - 将 Lerna 与 Yarn 工作区一起使用有什么优势吗?

我们正在迁移我们的 monorepo 以使用Lerna

Lerna 支持 NPM 和 Yarn,此外还允许配置与 Yarn 工作区一起使用。我不清楚带有 Yarn 工作空间的 Lerna 是否比带有 NPM 的 Lerna 有任何明显的优势。许多帖子声称 Lerna 与开箱即用的 Yarn 工作区或多或少做相同的事情。

与带有 NPM 的 Lerna 相比,使用带有 Yarn 工作区的 Lerna 有什么优势吗?

0 投票
1 回答
1157 浏览

npm - Yarn - 工作区 - Lerna - 我无法使用工作区功能添加我的包

我有这个文件夹树:

我的 editor_implementation/package.json 有以下内容:

我的根文件夹 my_project_tree/package.json 具有以下内容:

我在根级别的 lerna.json 具有以下内容:

当我从根运行时:

  • yarn 工作区包/editor_implementation 添加°一些包°
  • yarn workspace packages/* 添加°一些包°
  • lerna 添加°一些包°

所有命令都失败并带有可抽象为的消息:

知道包...

未找到包 {}...

我无法弄清楚出了什么问题,因为在我看来,我已经遵循了所有要求,如果有人有任何提示,那就太好了。

0 投票
1 回答
2551 浏览

typescript - ts-loader:从其他 Yarn 工作区导入 .ts 模块

我的纱线工作区结构如下:

为了构建/app包,我使用带有 ts-loader 的 Webpack。这是配置:

tsconfig.json

当我想从其他工作区导入模块时:

发生错误:

但是当我添加扩展导入时,一切正常:

如何修复 webpack 配置以将任何工作区模块作为 Typescript 导入而无需扩展?

我已经尝试过:

和:

0 投票
0 回答
997 浏览

node.js - 如何正确设置 Yarn-Workspaces

我的项目具有以下结构

每个包和项目根目录都有一个 package.json,其中包含所有定义的依赖项和 devDependencies。

使用纱线工作区配置我的项目的正确方法是什么?

我不希望node_modules每个包中都有一个文件夹,而是项目根目录中的一个文件夹。

package.json在项目根目录中设置

没用,因为我什至无法构建,packageE因为 gulp-script 不需要 devDependency。

0 投票
1 回答
1432 浏览

lerna - 带有 Lerna 的纱线工作区仍在将包添加到子文件夹

我对 Yarn Workspaces 感到困惑。我遵循了本教程:https://medium.com/trabe/monorepo-setup-with-lerna-and-yarn-workspaces-5d747d7c0e91但在其中一个子项目中,我仍然将包添加到 node_modules 中,这些包是从根节点模块。完整的测试仓库在这里:https ://github.com/donker/Dnn.React.Test

根包.json:

子项目包.json:

结果:packages/Tooltip/node_modules/lodash 创建。

预期:工具提示使用根文件夹中的 node_modules/lodash。

0 投票
0 回答
98 浏览

node.js - 使用纱线工作区时节点服务器不启动

我正在尝试使用 Yarn Workspaces 来拆分我的 React。这是我的文件夹结构。

反应

    • 常用组件
      • 包.json
    • 应用程序 1
      • 包.json
    • 应用 2
      • 包.json

commonComponents文件夹安装到 和 的 node_modulesapp 1app 2

虽然我的构建成功,但我无法启动我的节点服务器。抛出以下错误:

当前语法错误

我认为 babel 不能正确转换。有什么帮助吗?

0 投票
2 回答
684 浏览

javascript - Yarn Workspaces 和 Browserify - 子文件夹中的 package.json 会破坏构建

我的最终目标是在使用 Browserify 和 Babel 7 的项目中使用 Yarn Workspaces。这是我遇到的问题的最小再现。基本上,似乎子文件夹中存在 package.json 文件(这是您在使用 Yarn Workspaces 时拥有的东西之一)破坏了我的 Browserify 构建,我不知道为什么。

这是一个 GitHub 存储库,对问题进行了最少的复制。

首先,安装依赖项(可以使用yarn或者npm,没关系):

然后确认 Browserify+Babel 构建工作:

耶,一切都好!我编译的代码在 bundle.js 中。

现在让我们在a文件夹中创建一个虚拟的 package.json:

那不应该改变构建,对吧?错误的:

我无法弄清楚为什么会这样。任何帮助,将不胜感激!

0 投票
0 回答
166 浏览

javascript - 在 monorepo 中使用 Webpack 4 的 mainFields 分辨率不一致

在使用 Lerna 和 Yarn 工作区连接的 monorepo 中,其中一个包是 Next.js 应用程序,它依赖于 monorepo 内部的几个包。

monorepo 中的所有消耗品包都是用现代 javascript 编写的,并且在它们的 s中都有一个main字段和一个字段。按照约定,该字段指向使用 CJS 的已转译代码,而该字段指向除了将 ES 模块转换为 CJS 之外的已转译代码。modulepackage.jsonmainmain

如前所述,使用这些包的包是一个 Next.js 应用程序,它是使用 Webpack 4 构建的。奇怪的是,其中一个消耗的包被解析到main字段,而其余所有包都正确解析到module字段。

我什至尝试手动设置resolve.mainField[ 'module', 'main', ],但没有效果。

我在文档中找不到任何可以解释这种行为的东西,任何提示都将不胜感激

0 投票
1 回答
150 浏览

node.js - 列出所有需要/导入特定文件的文件

我有一个utilities.js文件,我想将它移到它自己的纱线包中。

目前有很多文件需要utilities.js通过相对路径,一些例子是

我正在寻找一种解决方案,将所有 require/imports 语句重命名为@myUtilities

我尝试将 VSCodes 查找功能与正则表达式匹配一起使用,但我未能达到或包含一些不希望的匹配项。

我能想到的最好的模式是

有没有更好的解决方案?