问题标签 [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.
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 项目引用会解决这个问题吗?
lerna - 将 Lerna 与 Yarn 工作区一起使用有什么优势吗?
我们正在迁移我们的 monorepo 以使用Lerna。
Lerna 支持 NPM 和 Yarn,此外还允许配置与 Yarn 工作区一起使用。我不清楚带有 Yarn 工作空间的 Lerna 是否比带有 NPM 的 Lerna 有任何明显的优势。许多帖子声称 Lerna 与开箱即用的 Yarn 工作区或多或少做相同的事情。
与带有 NPM 的 Lerna 相比,使用带有 Yarn 工作区的 Lerna 有什么优势吗?
npm - Yarn - 工作区 - Lerna - 我无法使用工作区功能添加我的包
我有这个文件夹树:
我的 editor_implementation/package.json 有以下内容:
我的根文件夹 my_project_tree/package.json 具有以下内容:
我在根级别的 lerna.json 具有以下内容:
当我从根运行时:
- yarn 工作区包/editor_implementation 添加°一些包°
- yarn workspace packages/* 添加°一些包°
- lerna 添加°一些包°
所有命令都失败并带有可抽象为的消息:
知道包...
未找到包 {}...
我无法弄清楚出了什么问题,因为在我看来,我已经遵循了所有要求,如果有人有任何提示,那就太好了。
typescript - ts-loader:从其他 Yarn 工作区导入 .ts 模块
我的纱线工作区结构如下:
为了构建/app
包,我使用带有 ts-loader 的 Webpack。这是配置:
和tsconfig.json
当我想从其他工作区导入模块时:
发生错误:
但是当我添加扩展导入时,一切正常:
如何修复 webpack 配置以将任何工作区模块作为 Typescript 导入而无需扩展?
我已经尝试过:
和:
node.js - 如何正确设置 Yarn-Workspaces
我的项目具有以下结构
每个包和项目根目录都有一个 package.json,其中包含所有定义的依赖项和 devDependencies。
使用纱线工作区配置我的项目的正确方法是什么?
我不希望node_modules
每个包中都有一个文件夹,而是项目根目录中的一个文件夹。
package.json
在项目根目录中设置
没用,因为我什至无法构建,packageE
因为 gulp-script 不需要 devDependency。
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。
node.js - 使用纱线工作区时节点服务器不启动
我正在尝试使用 Yarn Workspaces 来拆分我的 React。这是我的文件夹结构。
反应
- 包
- 常用组件
- 包.json
- 应用程序 1
- 包.json
- 应用 2
- 包.json
- 常用组件
该commonComponents
文件夹安装到 和 的 node_modulesapp 1
中app 2
。
虽然我的构建成功,但我无法启动我的节点服务器。抛出以下错误:
我认为 babel 不能正确转换。有什么帮助吗?
javascript - Yarn Workspaces 和 Browserify - 子文件夹中的 package.json 会破坏构建
我的最终目标是在使用 Browserify 和 Babel 7 的项目中使用 Yarn Workspaces。这是我遇到的问题的最小再现。基本上,似乎子文件夹中存在 package.json 文件(这是您在使用 Yarn Workspaces 时拥有的东西之一)破坏了我的 Browserify 构建,我不知道为什么。
首先,安装依赖项(可以使用yarn或者npm,没关系):
然后确认 Browserify+Babel 构建工作:
耶,一切都好!我编译的代码在 bundle.js 中。
现在让我们在a
文件夹中创建一个虚拟的 package.json:
那不应该改变构建,对吧?错误的:
我无法弄清楚为什么会这样。任何帮助,将不胜感激!
javascript - 在 monorepo 中使用 Webpack 4 的 mainFields 分辨率不一致
在使用 Lerna 和 Yarn 工作区连接的 monorepo 中,其中一个包是 Next.js 应用程序,它依赖于 monorepo 内部的几个包。
monorepo 中的所有消耗品包都是用现代 javascript 编写的,并且在它们的 s中都有一个main
字段和一个字段。按照约定,该字段指向使用 CJS 的已转译代码,而该字段指向除了将 ES 模块转换为 CJS 之外的已转译代码。module
package.json
main
main
如前所述,使用这些包的包是一个 Next.js 应用程序,它是使用 Webpack 4 构建的。奇怪的是,其中一个消耗的包被解析到main
字段,而其余所有包都正确解析到module
字段。
我什至尝试手动设置resolve.mainField
为[ 'module', 'main', ]
,但没有效果。
我在文档中找不到任何可以解释这种行为的东西,任何提示都将不胜感激
node.js - 列出所有需要/导入特定文件的文件
我有一个utilities.js
文件,我想将它移到它自己的纱线包中。
目前有很多文件需要utilities.js
通过相对路径,一些例子是
我正在寻找一种解决方案,将所有 require/imports 语句重命名为@myUtilities
我尝试将 VSCodes 查找功能与正则表达式匹配一起使用,但我未能达到或包含一些不希望的匹配项。
我能想到的最好的模式是
有没有更好的解决方案?