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

不太懂 pnpm 的用法 ...

  •  
  •   JinTianYi456 · 258 天前 · 2982 次点击
    这是一个创建于 258 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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  
       258 天前 via iPhone   ❤️ 20
    你这不是不太懂 pnpm ,你是 nodejs 都不懂。

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

    install.ps1 源码里就是 exe 呀~
    shunia
        6
    shunia  
       257 天前
    pip install module-a

    pnpm install module-a

    上面这句不工作?
    hupeng
        7
    hupeng  
       257 天前   ❤️ 4
    大家对小白宽容一点
    gxvsko
        8
    gxvsko  
       257 天前
    新版本的 nodejs
    可以用 corepack enable 会默认启用 yarn pnpm 包管理工具,可以不用单独安装
    https://nodejs.org/api/corepack.html
    z1645444
        9
    z1645444  
       257 天前
    | 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  
       257 天前
    @z1645444 补充一下...也许 op 连 pyenv 或者 *conda 这类都没用过,那么忘了 nvm 安装内容,建议访问 Nodejs 的官网,直接下载一个 LTS 版本使用。

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

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

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

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

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

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

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

    全局安装 pnpm add -g xxx
    项目内安装 pnpm add xxx
    直接执行不安装 pnpm dlx xxx
    执行已经全局安装的 xxx
    zhhbstudio
        18
    zhhbstudio  
       253 天前
    #17 执行项目内安装的 pnpx xxx
    magicdawn
        19
    magicdawn  
       251 天前
    说实话 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   ·   实用小工具   ·   4411 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 01:03 · PVG 09:03 · LAX 17:03 · JFK 20:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.