问题标签 [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.
node.js - 有没有一种跨平台的方式来获取 Node.js 中父进程的名称?
我正在开发一个 npm 包初始化程序,即在用户运行npm init <my-package-initializer>
命令时运行的程序。
npm 不再是 Node.js 的唯一包管理器,yarn 也很受欢迎,pnpm 是我个人的最爱,我想支持这三个。简单的方法是询问用户他们更喜欢哪个包管理器,或者像CRA 一样提供命令行开关。
但是用户已经通过运行yarn create
而不是npm init
. 再问就觉得烦。我们可以检查是否yarn
或者pnpm
是我们的父进程。
是否有跨平台的方式来获取这些信息?
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 总是要求我安装最新版本时,我告诉不它不安装旧版本。
continuous-integration - 如何在 GitHub Actions 上将 PNPM 工作区项目作为并行作业运行?
给定一个包含两个包的存储库结构,如下所示:
我想运行 GitHub Actions CI,以便它自动将每个项目作为单独的作业运行。在这里,我设置了一个手动执行并行化的作业:
这运行得很快,因为每个项目都作为并行作业运行,但我不想手动维护该matrix.package
列表。如何利用pnpm
提供输入到 GitHub Actions CI 的工作区项目列表?
node.js - 如何在多阶段 docker 文件中 pnpm 和 Next.js?
如果我切换npm
到pnpm
.
我应该如何修改该 Dockerfile 以使其保持多阶段,但也使用pnpm
而不是npm
?
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 作为本地依赖项?
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
在引擎盖下。
谢谢。
visual-studio - PNPM 和 Visual Studio .Net 2019
有没有人能够在 Visual Studio .Net中使用 PNPM( https://pnpm.io/motivation )?NPM 似乎是默认值,我看不到如何更改它。
任何指导或步骤或链接都会非常有帮助。
谢谢
ionic-framework - 如何将 Ionic CLI 与 pnpm 一起使用
如何在离子 cli 中使用 pnpm 而不是 npm?它有一些比 npm 更好的好处,比如更小的存储使用量,在下载某些包时显示进度等等......
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 开发。
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 的输出中。
有人对此有见识吗?