V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JinTianYi456
V2EX  ›  Node.js

不太懂 pnpm 的用法 ...

  •  
  •   JinTianYi456 · 2024-03-14 00:44:33 +08:00 · 3251 次点击
  •   查看本主题需要登录
    这是一个创建于 365 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Python
    
    1. 安装 python 和 pip
    
    2. python --version
    
    3. pip install module-a
    
    4. python -m module-a --help
    
    Node.js
    
    1. 下载 pnpm.exe
    > ./pnpm.exe --help
    Version 8.1.0 (compiled to binary; bundled Node.js v18.1.0)
    
    2. 这个 bundled Node.js 是没法调用的是吧?? (要自行安装? 那 bundled 干嘛?)
    
    3. 怎么安装模块??
    
    4. 怎么执行模块??
    

    https://pnpm.io/

    19 条回复    2024-03-20 16:17:45 +08:00
    lscho
        1
    lscho  
       2024-03-14 01:16:52 +08:00 via iPhone   ❤️ 20
    你这不是不太懂 pnpm ,你是 nodejs 都不懂。

    而我,甚至连你想表达的内容都看不懂。
    wildnode
        2
    wildnode  
       2024-03-14 01:18:31 +08:00
    你问的东西官网上都有,而且没什么难度,基本是看了就行。
    siweipancc
        3
    siweipancc  
       2024-03-14 01:21:53 +08:00 via iPhone
    你在搞什么?要我后端仔教你写前端代码吗?
    npm command pnpm equivalent
    npm install pnpm install
    npm i <pkg> pnpm add <pkg>
    npm run <cmd> pnpm <cmd>
    marcong95
        4
    marcong95  
       2024-03-14 09:11:55 +08:00
    你自己都贴了官网出来了,为啥还要「下载 pnpm.exe 」官网 Installation 甚至连下载 pnpm.exe 都没有。。。
    JinTianYi456
        5
    JinTianYi456  
    OP
       2024-03-14 09:40:50 +08:00
    @marcong95 #4 https://pnpm.io/installation#on-windows

    install.ps1 源码里就是 exe 呀~
    shunia
        6
    shunia  
       2024-03-14 09:43:15 +08:00
    pip install module-a

    pnpm install module-a

    上面这句不工作?
    hupeng
        7
    hupeng  
       2024-03-14 10:05:57 +08:00   ❤️ 5
    大家对小白宽容一点
    gxvsko
        8
    gxvsko  
       2024-03-14 10:16:46 +08:00
    新版本的 nodejs
    可以用 corepack enable 会默认启用 yarn pnpm 包管理工具,可以不用单独安装
    https://nodejs.org/api/corepack.html
    z1645444
        9
    z1645444  
       2024-03-14 10:25:51 +08:00
    | 2. 这个 bundled Node.js 是没法调用的是吧?? (要自行安装? 那 bundled 干嘛?)

    不是很推荐先安装包管理器,再由包管理器安装 Nodejs 。推荐使用 nvm 进行 Nodejs 的安装,再由指定版本的 Nodejs 中附带的 corepack 来打开 pnpm 的包,即执行 `corepack enable pnpm`。

    怎么断定没法调用?执行 `node -v` 有没有信息提示?有则是写入了 Windows 的环境变量中,可以正常调用。

    | 3. 怎么安装模块??
    | 4. 怎么执行模块??

    ```
    pip install module-1` !== `pnpm add module-1
    ````

    本质上,在非 venv 或者相关虚拟环境下执行 pip install ,是全局安装,所以对应到 Nodejs 生态下的包管理器中,应该是 `npm i -g module-a`,也就是 `pnpm add -g module-a`。

    之后,`python -m module-a --help` === `module-1 --help`。

    如果是想本地装入 module-a ,也就是 `python3 -m venv .` 或者类似操作后,才执行 `pip install module-a`,在执行 `module-a --help`(这里的情况是局部目录安装)时,也应该保证当前所处的目录是与 node_modules/ 同级的目录。否则将索引不到包的二进制可执行程序。

    可能主要困扰 op 的点是全局安装和局部安装的问题,pip 默认安装是全局的,容易误导没认真仔细阅读 Nodejs 生态包管理器的新手。
    z1645444
        10
    z1645444  
       2024-03-14 10:36:43 +08:00
    @z1645444 补充一下...也许 op 连 pyenv 或者 *conda 这类都没用过,那么忘了 nvm 安装内容,建议访问 Nodejs 的官网,直接下载一个 LTS 版本使用。

    如果希望做的项目有可以参考的,而且包都很老,建议点击上方的 DOWNLOAD ,在最底下找到 Previous Releases ,下载个 14.x 的版本,否则也忘了这条。
    blur1119
        11
    blur1119  
       2024-03-14 10:48:52 +08:00
    这种东西都要拿上来问,官网文档不都有吗。就个包管理工具有什么好琢磨的
    jspatrick
        12
    jspatrick  
       2024-03-14 10:53:33 +08:00
    有的时候官网和论坛要结合起来看,pnpm 的入门使用教程在掘金上一搜一大把
    lisongeee
        13
    lisongeee  
       2024-03-14 10:57:40 +08:00
    pnpm 有两类发行版,一种是作为 npm package 发行,另一种是直接将 nodejs+pnpm 源代码 打包为可执行文件

    你下载的就是第二种,第二种的好处是可以不依赖 nodejs 版本

    另外建议先了解 nodejs 的模块加载机制和 js 的模块规范

    小白的初期阶段就是啥也不懂,同时也不懒得学习相关文档了解,最后直接发一个表达能力堪忧大家读不懂的问题
    marcong95
        14
    marcong95  
       364 天前
    @JinTianYi456 最后肯定有一个 exe 啊,但是 ps1 源码里面还有各种操作,你进去 ps1 里面把 exe 的链接翻出来直接用是什么操作

    最起码最后还有一段安装的啊

    Start-Process -FilePath $tempFile -ArgumentList "setup" -NoNewWindow -Wait -ErrorAction Continue
    icy37785
        15
    icy37785  
       364 天前 via iPhone
    @hupeng #6 对小白宽容,那是为了帮助他,让他能把这条路走下去。对不看文档的人刻薄,也是为了帮助他,让他能把这条路走下去。
    真养成了文档不看上来就发帖问的习惯,编程这条路算是走不下去了。
    lllpla
        16
    lllpla  
       364 天前
    https://pnpm.io/zh/installation 官网是有中文翻译的 ,可以仔细阅读下
    zhhbstudio
        17
    zhhbstudio  
       361 天前
    我是前端,在用 pnpm ,#14 说的对 /doge

    你手动下载好 exe 之后可以直接 ./pnpm.exe setup ,它会自己加环境变量,移动目录,后边你就可以在任何地方直接使用 pnpm 命令了。

    全局安装 pnpm add -g xxx
    项目内安装 pnpm add xxx
    直接执行不安装 pnpm dlx xxx
    执行已经全局安装的 xxx
    zhhbstudio
        18
    zhhbstudio  
       361 天前
    #17 执行项目内安装的 pnpx xxx
    magicdawn
        19
    magicdawn  
       358 天前
    说实话 pnpm 安装方法太多了...
    有时候太多会使人眼花缭乱


    Using a standalone script
    On Windows
    On POSIX systems
    In a Docker container
    Installing a specific version
    Using Corepack
    Using npm
    Using Homebrew
    Using winget
    Using Scoop
    Using Choco
    Using Volta
    Compatibility
    Troubleshooting
    Using a shorter alias
    Uninstalling pnpm
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5491 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:49 · PVG 15:49 · LAX 00:49 · JFK 03:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.