环境:Windows、Node 16.18.0、Corepack 0.14.1
我按照这些说明安装 Yarn。
当我跑步corepack prepare yarn@3.2.4或corepack prepare yarn@3.2.4 --activate
我收到以下错误:
Preparing yarn@3.2.4... Internal Error: ENOENT: no such file or directory, stat 'C:\Users\rashiditaba\AppData\Local\node\corepack\yarn\3.2.4' Error: ENOENT: no such file or directory, stat 'C:\Users\***\AppData\Local\node\corepack\yarn\3.2.4'
Run Code Online (Sandbox Code Playgroud) 为什么 Yarn 不直接称为 Yarn 2 Yarn 3 而是称为Yarn 2?
yarn --version
Run Code Online (Sandbox Code Playgroud)
输出:
3.0.1
Run Code Online (Sandbox Code Playgroud)
或者甚至称其为浆果?我不明白命名约定。
我尝试使用 Yarn v3 安装本地包,结果撞到了墙上。这是我尝试过的所有事情:
yarn add file:../hardhat-packageryarn add ../hardhat-packager"hardhat-packager": "file:../hardhat-packager"进去package.json"hardhat-packager": "../hardhat-packager"进去package.json上述所有情况都会导致 Yarn 在安装步骤中卡住,如下图所示。我等了五分钟多,并确保我的互联网连接速度很快。
我知道有一个链接包的选项,但这并不是我想要的。我不需要符号链接,我想要复制实际的包文件。
我怎样才能做到这一点?我正在使用 Yarn v3.2.0
当前的纱线版本是纱线3.0.0。尝试使用更改为yarn 2.0.0 yarn set version 2.0.0-rc.30。即使在那之后,yarn 版本仍然保持在yarn 3.0.0。
我尝试过的其他替代方案:
npm uninstall -g yarnthen npm install -g yarn。仍然纱线版本保持在 3.0.0。
更新:
刚刚从 Yarn 1 升级到 Yarn 3。
在我的package.json“项目 1”中,我对已发布的包有依赖关系
dependencies: {
...
"@my-package/name": "3.4"
...
}
Run Code Online (Sandbox Code Playgroud)
package.json当将“Project 1”链接到“@my-package/name”进行本地开发时, Yarn 1 没有改变 ,效果很好。
将我的本地版本的包与 Yarn 2/3 链接起来,现在添加了
"resolutions": {
"@my-package/name": "portal:../name"
}
Run Code Online (Sandbox Code Playgroud)
这会破坏临时/生产环境中部署期间的构建过程。该链接仅适用于本地开发,而在其他环境中应忽略它并且(仅)应使用上面发布的包。知道现在这是否/如何可能吗?
这是有关该问题/更改的票证https://github.com/yarnpkg/berry/issues/90
我正在从 迁移yarn version 1.22到yarn v3.2.3。我有一个prepare安装后自动运行的脚本。
我的prepare脚本生成一些文件(FIY Nuxt 3 生成的文件)。
它不再在纱线 3 上运行,我怎样才能获得相同的效果?我在https://yarnpkg.com/advanced/lifecycle-scripts上找不到它。也许我读错了。
简而言之:对于下面描述的项目,我如何才能最好地进行配置以使两个应用程序(客户端+服务器)运行?
我正在开发一个运行时间较长的项目,随着时间的推移,该项目演变成一个单一的存储库。我无法共享完整的代码,因为该项目是私有的,但该项目大致具有以下结构,并用数字标记,因此我可以在此示例中轻松引用特定文件:
<repo-root>/
1 个包.json
2 tsconfig.json
客户/
3 包.json
4 tsconfig.json
页数/
索引.tsx
全球的/
5 包.json
6 tsconfig.json
源代码/
9 索引.ts
建造/
索引.js
索引.d.ts
服务器/
7 包.json
8 tsconfig.json
源代码/
索引.ts
垃圾桶/
索引.js
具体来说,客户端包含一个NextJS项目,服务器包含一个NodeJS Express服务器,全局目录包含客户端和服务器都使用的一些共享功能和接口。
客户端和服务器能够通过 typescript 项目引用访问 global,以及使用 typescript 别名映射@global/到客户端上的 global/src 目录以及服务器上的 global/build 目录,如 tsconfig 文件中所示以下。之所以在global中有一个build目录,是因为我们在服务器中有一个编译环境;服务器应用程序的构建tsc和运行node server.js(大致)。以下是编号的文件,放入 Pastebin 中,这样帖子就不会很大:
8 是一个代码片段,因为我当天的访客粘贴用完了:
<repo-root>/ 1 package.json 2 tsconfig.json client/ 3 package.json 4 tsconfig.json …
我将我们的项目yarn从v1.22升级到v3.1.1。我们使用工作区,所以我有那个插件。一切看起来都很好;其他脚本可以工作,但是当尝试使用 shell 命令时,我收到此错误:
> yarn run start
command not found: if
command not found: then
command not found: fi
Run Code Online (Sandbox Code Playgroud)
这是我们的 package.json 中的脚本:
> yarn run start
command not found: if
command not found: then
command not found: fi
Run Code Online (Sandbox Code Playgroud) 我们有一个基于 Yarn 的 monorepo,最新的 Yarn 版本为 3.2.0。我们正在得到yarn install我们在 GitHub 工作流程上
Run yarn install\n\xe2\x9e\xa4 YN0000: \xe2\x94\x8c Resolution step\nResolution step\n\xe2\x9e\xa4 YN0000: \xe2\x94\x94 Completed in 1s\n\n\xe2\x9e\xa4 YN0000: \xe2\x94\x8c Post-resolution validation\nPost-resolution validation\n\xe2\x9e\xa4 YN0000: \xe2\x94\x94 Completed in 0s 226ms\n\xe2\x9e\xa4 YN0000: Failed with errors in 1s 236ms\nRun Code Online (Sandbox Code Playgroud)\n当我们团队的大多数成员生成文件时yarn.lock,除了一名团队成员能够生成工作文件外,就会发生这种情况yarn.lock在工作流程中工作的工作之外,就会发生这种情况。奇怪的是,他正在运行与大多数其他开发人员(MBP、Node 16)非常相似的设置。
知道是什么原因造成这种情况以及我们如何找到更多信息吗?
\n我只是使用(按照文档)创建一个新的 nuxt 应用程序:
\nyarn create nuxt-app appname\nRun Code Online (Sandbox Code Playgroud)\n然后我切换到该目录并运行(按照文档):
\nyarn dev\nRun Code Online (Sandbox Code Playgroud)\n并得到以下错误:
\n \xe2\x9c\x96 Nuxt Fatal Error \xe2\x94\x82\n \xe2\x94\x82 \xe2\x94\x82\n \xe2\x94\x82 Error: @nuxt/components tried to access consola (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. \xe2\x94\x82\n \xe2\x94\x82 \xe2\x94\x82\n \xe2\x94\x82 Required package: consola \xe2\x94\x82\n \xe2\x94\x82 Required by: @nuxt/components@virtual:4eff43f3a560be194e6097f872c9d8ed0666b260b73fc7573cd09c38d17c2e2d252932f70636f4f4a6035fee79be6a699b4f9693d4a20ba4eb5c9b359f2413a9#npm:2.1.8 (via \xe2\x94\x82\n \xe2\x94\x82 /home/ev/Documents/Projects/firebase-test/f-test/.yarn/__virtual__/@nuxt-components-virtual-7192147023/0/cache/@nuxt-components-npm-2.1.8-189d4bc3ff-b2ab70da20.zip/node_modules/@nuxt/components/dist/) \xe2\x94\x82\n \xe2\x94\x82 \xe2\x94\x82\n \xe2\x94\x82 Ancestor breaking the chain: nuxt@npm:2.15.7 \xe2\x94\x82\n \xe2\x94\x82 \xe2\x94\x82\n \xe2\x94\x82 \xe2\x94\x82\n \xe2\x94\x82 Require …Run Code Online (Sandbox Code Playgroud) 尝试让 Heroku 使用工作区为 Yarn v3 使用缓存模块。我有以下内容:
\npackage.json:
"engines": {\n "node": "16.x",\n "yarn": "3.x"\n },\n "cacheDirectories": [\n "node_modules",\n "packages/components/node_modules",\n "packages/lib/node_modules",\n "packages/schema/node_modules",\n "packages/web/node_modules",\n "packages/web/.next/cache"\n ]\nRun Code Online (Sandbox Code Playgroud)\nheroku-buildpack-features:
cache-native-yarn-cache=true\nRun Code Online (Sandbox Code Playgroud)\nHeroku 输出:
\n-----> Creating runtime environment\n \n NPM_CONFIG_LOGLEVEL=error\n USE_YARN_CACHE=true\n NODE_VERBOSE=false\n NODE_ENV=production\n NODE_MODULES_CACHE=true\n \n-----> Installing binaries\n ! You don't need to specify Yarn engine. Heroku will install the latest Yarn 1.x, so that per project version can be used. More information here: https://yarnpkg.com/getting-started/install#global-install\n https://devcenter.heroku.com/articles/nodejs-support\n \n engines.node (package.json): 16.x\n …Run Code Online (Sandbox Code Playgroud) node.js 版本:16.14.0\nyarn 版本:3.1.1\nmacOS:11.6.4(Big Sur)
\n我建立并继续致力于纱线工作区项目。我在 github 存储库上提交了包括.yarn, .pnp.cjs,在内的所有文件。.pnp.loader.mjs
然而,我更换电脑后遇到了问题。
\n当我尝试克隆存储库并yarn install从桌面计算机执行时,它删除了文件并安装.pnp.cjs了..pnp.loader.mjsnode_modules
其他同事没有遇到这个问题,我的另一台笔记本电脑上也没有遇到这个问题。Node和其他版本是一样的。
\n我多次尝试删除并重新安装该存储库,但结果也是一样。
\n我知道当依赖项包含二进制文件时,尽管使用 Yarn berry,仍然可以安装 node_modules。但我认为情况并非如此。
\nnode_modules下面是安装时的 shell 消息。
\xe2\x9e\xa4 YN0000: \xe2\x94\x8c Resolution step\n\xe2\x9e\xa4 YN0000: \xe2\x94\x94 Completed\n\xe2\x9e\xa4 YN0000: \xe2\x94\x8c Fetch step\n\xe2\x9e\xa4 YN0000: \xe2\x94\x94 Completed in 0s 353ms\n\xe2\x9e\xa4 YN0000: \xe2\x94\x8c Link step\n\xe2\x9e\xa4 YN0076: \xe2\x94\x82 @swc/core-android-arm-eabi@npm:1.2.126 The darwin-x64 architecture is incompatible with this module, link skipped.\n\xe2\x9e\xa4 YN0076: \xe2\x94\x82 @swc/core-android-arm64@npm:1.2.126 The darwin-x64 architecture …Run Code Online (Sandbox Code Playgroud) 我正在使用 NeoVim 和 CoC 来进行支持yarn-3 pnp 的项目的 TS 开发。在某些时候,编辑器不再看到导入并开始抱怨导入的模块不存在。(参见屏幕截图)。我已经为vim配置了SDK并安装了ts sdks,更新了yarn并重新启动了编辑器。以下是一些详细信息: 操作系统:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
Run Code Online (Sandbox Code Playgroud)
尼奥维姆:
NVIM v0.7.2
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by team+vim@tracker.debian.org
Run Code Online (Sandbox Code Playgroud)
包.json:
{
"private": true,
...
"devDependencies": {
"typescript": "4.5.5",
},
"packageManager": "yarn@3.5.0"
}
Run Code Online (Sandbox Code Playgroud)
.yarnrc.yml
checksumBehavior: update
nodeLinker: pnp
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: "@yarnpkg/plugin-workspace-tools"
- path: .yarn/plugins/@yarnpkg/plugin-typescript.cjs
spec: "@yarnpkg/plugin-typescript"
yarnPath: .yarn/releases/yarn-3.5.0.cjs
Run Code Online (Sandbox Code Playgroud)
tsconfig.json:
{
"compilerOptions": {
"outDir": "./dist/",
"noImplicitAny": true,
"skipLibCheck": true,
"module": "es6",
"target": "es6",
"jsx": "react",
"allowJs": true,
"moduleResolution": "node",
"resolveJsonModule": …Run Code Online (Sandbox Code Playgroud) yarnpkg-v3 ×13
yarnpkg ×8
yarnpkg-v2 ×4
node.js ×2
package.json ×2
typescript ×2
coc.nvim ×1
corepack ×1
heroku ×1
installation ×1
javascript ×1
neovim ×1
node-modules ×1
npm-scripts ×1
nuxt.js ×1
nvm ×1