问题标签 [rush]
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.
npm - 如何在已发布的包中打包本地依赖项的快照
在使用Rush管理的 JavaScript monorepo 中,我有三个项目:
backend/
frontend/
shared/
在backend/package.json
andfrontend/package.json
中,shared
项目被声明为依赖项:
在本地环境中,一切正常,这要归功于npm link
为我运行的 Rush。
现在我需要发布。
在frontend
项目中,命令rushx build
(如npm run build
)在 webpack 的帮助下创建 JS 和 CSS 包,并将它们放在backend/
目录中。
我想将该backend
项目作为 npmjs 上的真实包发布。我不想shared
作为一个不同的包发布,因为在发布的版本中它不再共享。内容shared
已经捆绑在前端。我也想把它嵌入后端。
我试着打包它:
然后我编辑backend/package.json
:
但之后生成的包不起作用。当我执行npm install my-published-package
时,它会尝试shared-0.0.0.tgz
在当前目录而不是已安装的包目录中查找。
有没有优雅的解决方案?
rush - 让 Rush 将开发依赖项添加到新项目
将新项目添加到 Rush monorepo 时,Rush 有没有办法自动将开发依赖项插入到package.json
? 例如,我想在项目之间使用相同的测试框架,所以最好让 Rush 同步开发依赖项。
typescript - `rush build` 和 `tsc -b` 一起玩好吗?
我正在使用项目引用和增量构建来探索 Rush/PNPM 和 Typescript,但我有点困惑这两者中哪一个最适合管理增量构建。
如果我使用内置命令进行rush build
增量构建,我认为 Rush 正确地识别了所有已知项目的 package.json 声明build
中的依赖关系,并按依赖顺序运行每个项目的脚本。如果每个 typescript 项目的build
脚本是./node_modules/.bin/tsc -b .
,那么树上的每个依赖项都将按照依赖项顺序构建。
其中,tsc
还将根据其references
path
s 列表评估 package.json 依赖项。理想情况下,它会(?)认识到其依赖项的早期独立构建使它们成为最新的并且不需要重新构建,然后只构建直接项目的代码作为其rush build
调用构建的一部分。如果这甚至是可靠和稳定的,那么它似乎充其量是不必要的依赖树评估,对吧?
我尝试在 command-line.json 中覆盖 rush 的build
bulk
命令,并且只在最顶层的应用程序的 package.json 中定义。(这个想法是在子项目中使用替代方案或其他任何东西,以防我真的想重建其中一个,并且出于某种原因只重建它的依赖项。)由于批量命令的性质,Rush 发出有关跳过的构建和缺少可能误导开发人员的脚本。此外,我不相信所有项目都在编译 - 例如,我没有看到生成的 js 文件 - 也许这是一个不相关的问题。ignoreMissingScript
"build": "./node_modules/.bin/tsc -b ."
build-me
我没有看到任何简单的 Rush 配置来推迟到打字稿 - 我们不允许将build
命令行覆盖为global
-style shell 命令。我觉得我真的只希望 Rush 用于包管理而不是脚本运行(因为它太受限制了)。但是,我也不能轻易地反对rush build
以其他方式运行主项目的打字稿增量构建。我很惊讶没有找到任何相关的搜索结果,因为这两个都是尖端的 Microsoft 项目。我错过了一些基本的东西吗?
azure-devops - 仓促重建指定项目顺序
我正在使用 microsoft rush 来构建单一存储库。我必须构建两个项目 -tools-common
并且tools-backend
tools-backend
取决于tools-common
.
rush rebuild
在本地机器上工作正常。但是在 azure devops 上,它尝试首先构建tools-backend
,但由于找不到tools-common
.
我的问题是。
- 为什么rush on azure devops 无法检测到订单?
tools-common
我怎样才能确保它之前拿起tools-backend
?
npm - npm audit fix 的 rush 等价物是什么?
npm audit fix 的 rush 等价物是什么?Rush 在幕后运行 npm,但没有包锁,所以当他们告诉我“运行 npm audit fix”时,我不能这样做。
rush - 从列表中获取特定数据
我有这种列表,但我只想从列表中取出名字。
我怎样才能做到这一点?
angular - 使用库快速设置 Angular monorepo
我尝试使用 rush 和 angular 工作空间和库来设置 monorepo。
但我很难让它发挥作用。
通常,您有一个包含多个库的工作区,并使用ng build <libname>
. 但在匆忙中,我必须在每个项目根目录的 package.json 中指定一个项目根目录和一个构建命令。所以我不能为一个项目根目录设置多个构建命令。还是我错了?
我试图为每个库创建一个工作区,但因为真正的包名称在 libs package.json 和工作区 package.json 中。它也不起作用。
目前我使用nx,但由于各种原因我对它不满意,所以我想切换。
任何人都设置和 rush repo 有多个工作区和带有角度项目的库?
pnpm - 我们可以从其他克隆的存储库中添加一个包并在本地构建为另一个 rush monorepo 中的本地依赖项吗
项目结构是:repo A -Package x Repo B - Package Y 我希望使用包 x 作为包 y 中的本地依赖项。当我遵循 y: "dependency":{ "x" : "FILE: ./x"} 的 package.json 中的语法时,如果在 repo BI 中可以使用 npm install 然后 npm run build,它就可以工作。但是 repo B 使用 rush 和 rush update --purge 给出以下错误: 错误:无法解析 PNPM 收缩包装版本说明符:“link: ./x” for “x” 有没有办法在 repo b 中添加 x 作为本地依赖项?
jenkins - Rush 构建错误 - [Errno 2] 没有这样的文件或目录:'build:ts'
我在rush build
命令期间收到以下错误。我只在虚拟机中收到此错误,而本地一切正常。
信息:
Ubuntu 20.04 lts
节点版本:14.17.5
Npm 版本:7.42.0
回溯(詹金斯控制台):
我试图重新安装rush
& yarn
但它没有帮助。
下面我放置了command-line.json
文件:
typescript - 未捕获(承诺)类型错误:无法在“WorkerGlobalScope”上执行“获取”:非法调用
我在打字稿代码中有一个对象主机,它被创建为:
现在,当整个项目在 google chrome 上构建并运行(使用 rush)时,系统崩溃并且控制台显示错误
未捕获(承诺)类型错误:无法在“WorkerGlobalScope”上执行“获取”:非法调用
这个错误被一个类似的语句捕获
我无法理解这个错误是什么意思以及可能导致它的原因。任何帮助将非常感激。