问题标签 [pnpm]

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 投票
1 回答
88 浏览

node.js - 有没有一种跨平台的方式来获取 Node.js 中父进程的名称?

我正在开发一个 npm 包初始化程序,即在用户运行npm init <my-package-initializer>命令时运行的程序。

npm 不再是 Node.js 的唯一包管理器,yarn 也很受欢迎,pnpm 是我个人的最爱,我想支持这三个。简单的方法是询问用户他们更喜欢哪个包管理器,或者像CRA 一样提供命令行开关。

但是用户已经通过运行yarn create而不是npm init. 再问就觉得烦。我们可以检查是否yarn或者pnpm是我们的父进程。

是否有跨平台的方式来获取这些信息?

0 投票
1 回答
126 浏览

reactjs - 如何通过 pnpx 安装旧版本的 create-react-app?

当我输入此代码时

输出画面

如果我输入'n'它不会安装。如果我输入“y”,它会为最新版本安装 create-react-app,数据为 50 - 60 MB。

我不想要最新版本的 create-react-app 。我想在我的计算机中使用已经缓存的 create-react-app,当我通过 pnpm 包管理器安装时总是会发生这种情况。

每当 create-react-app update 那里的包 pnpx 总是要求我安装最新版本时,我告诉不它不安装旧版本。

0 投票
1 回答
214 浏览

continuous-integration - 如何在 GitHub Actions 上将 PNPM 工作区项目作为并行作业运行?

给定一个包含两个包的存储库结构,如下所示:

我想运行 GitHub Actions CI,以便它自动将每个项目作为单独的作业运行。在这里,我设置了一个手动执行并行化的作业:

这运行得很快,因为每个项目都作为并行作业运行,但我不想手动维护该matrix.package列表。如何利用pnpm提供输入到 GitHub Actions CI 的工作区项目列表?

0 投票
1 回答
1078 浏览

node.js - 如何在多阶段 docker 文件中 pnpm 和 Next.js?

如果我切换npmpnpm.

我应该如何修改该 Dockerfile 以使其保持多阶段,但也使用pnpm而不是npm

0 投票
0 回答
37 浏览

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 作为本地依赖项?

0 投票
0 回答
30 浏览

node.js - npm/yarn/yarn2/pnpm 首先获取 package.json 以解析“os”字段吗?

package.json 中有os字段

那么,是否 npm/yarn/yarn2/pnpm 先获取依赖的 pacakge.json,然后解析“os”字段(如果存在),只有在 os 匹配时才下载源代码?

或者,他们只是一次下载所有内容(package.json+source)吗?

上下文 我打算发布一个包,其中包含一些特定于操作系统的代码(由 go 编译)。所以我有 3 个已编译的二进制文件(适用于 windows、linux、macOS)。然而,它们中的每一个都有很大的尺寸。因此,我想避免天真地将它们全部包含在一个包中。因此,我正在考虑将它们分开,如@foo/win32, @foo/linux, @foo/darwin。然后让一个名为的包foo依赖于所有这些。最终,用户安装npm install foo而不关心他们的操作系统。这种分离会避免安装不必要的依赖吗?例如,当npm install foo在 linux 上时,我希望 npm 不安装@foo/win32@foo/darwin在引擎盖下。

谢谢。

0 投票
0 回答
22 浏览

visual-studio - PNPM 和 Visual Studio .Net 2019

有没有人能够在 Visual Studio .Net中使用 PNPM( https://pnpm.io/motivation )?NPM 似乎是默认值,我看不到如何更改它。

任何指导或步骤或链接都会非常有帮助。

谢谢

0 投票
1 回答
66 浏览

ionic-framework - 如何将 Ionic CLI 与 pnpm 一起使用

如何在离子 cli 中使用 pnpm 而不是 npm?它有一些比 npm 更好的好处,比如更小的存储使用量,在下载某些包时显示进度等等......

0 投票
0 回答
225 浏览

rollupjs - pnpm-workspace monorepo 中的汇总错误:'default' 不是由 ../../node_modules/.pnpm/classnames@2.3.1/node_modules/classnames/index.js 导出的

我有一个 UI lib repo ,它可以很好地与下面的汇总配置一起使用

我的 rollup.conf.js

但是,当我使用 pnpm 工作区并尝试在内部管理它时,显示以下错误:

我遇到的错误,不知道如何解决

https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module页面并没有真正的帮助,因为 namedExports 已不再工作。

它是一个与 antd 集成的 lib repo。antd-mobile,目前使用 React 进行 UI 开发。

0 投票
1 回答
79 浏览

pnpm - pnpm 列表不显示传递依赖项

我正在学习 pnpm,但我无法理解 pnpm list (ls) 的行为。在 pnpm 文档(https://pnpm.io/cli/list)中,它似乎清楚地表明该命令的输出详细说明了项目的直接依赖关系,以及这些依赖关系(传递)的依赖关系,以及很快。

但是,当我在项目上运行命令时,只会列出 package.json 中声明的直接依赖项。例子:

项目来源:https ://github.com/truenas/documentation

我克隆 repo,cd 到项目根目录,运行 pnpm install。然后我运行 pnpm list 并得到以下输出:

输出反映了项目的 package.json 中声明的直接依赖关系。但是,查看 pnpm-lock.yaml 文件,可以看到有几十个其他包安装为声明的依赖项的依赖项。

我希望这些传递依赖项也会列在 pnpm list 的输出中。

有人对此有见识吗?