【问题标题】:How do I uninstall a package installed using npm link?如何卸载使用 npm 链接安装的软件包?
【发布时间】:2013-10-06 08:10:21
【问题描述】:

使用包目录中的sudo npm link 安装节点包时,我如何在完成开发后卸载该包?

npm link 将包作为符号链接安装在系统的全局包位置('/usr/local/lib`)中。这使您可以在开发包的同时对其进行测试,而无需一遍又一遍地安装。

我需要运行哪个 npm 命令才能再次删除链接?

【问题讨论】:

    标签: node.js npm npm-link


    【解决方案1】:

    可以使用相同的 uninstallrm 命令来卸载该软件包,该命令可用于删除已安装的软件包。唯一要记住的是链接需要全局卸载 - 需要提供 --global 标志。

    为了卸载全局链接的foo包,可以使用以下命令(必要时使用sudo,取决于您的设置和权限)

    sudo npm rm --global foo
    

    这将卸载软件包。

    要检查是否安装了包,可以使用npm ls 命令:

    npm ls --global foo
    

    【讨论】:

    • 如果您不确定链接包的名称,您也可以使用npm ls --global --depth 0 列出所有顶级依赖项
    • 由于权限问题,这对我不起作用,即使是 sudo。我使用带有nameversion 字段的虚拟package.json 创建了丢失的目录(name 应该与包名称匹配,version 可以是任何东西)。在那个文件夹中,我运行了npm link && npm unlink,它成功了。
    • npm uninstall 来自本地库文件夹也可以。
    • sudo 如果您使用 nvm 之类的东西来安装节点,则不需要
    • npm list -g --depth=1 为我工作
    【解决方案2】:

    您可以使用unlink 删除符号链接。

    例如:

    cd ~/projects/node-redis 
    npm link                 
    cd ~/projects/node-bloggy
    npm link redis             # links to your local redis
    

    从你的 package.json 重新安装:

    npm unlink redis
    npm install
    

    https://www.tachyonstemplates.com/npm-cheat-sheet/#unlinking-a-npm-package-from-an-application

    【讨论】:

    • unlinknpmrm 不一样吗?他们共享同一个手册页(uninstall)。
    • @nwinkler 你能分享一个链接吗?
    • npm 源代码使用 rm、unlink、remove、r 和 un 作为卸载别名:github.com/npm/npm/blob/… - 见第 66 行。
    • 这个答案底部的链接对我来说已经死了。
    • npm i 不删除所有链接吗?
    【解决方案3】:

    npm 链接痛:

    -模块名称gulp-task

    -项目名称project-x


    你想链接gulp-task

    1:进入 gulp-task 目录,然后执行 npm link 这会将项目符号链接到您的全局模块

    2: 转到你的项目 project-x 然后执行npm install 确保删除当前 node_modules 目录


    现在你想消除这种疯狂并使用真正的gulp-task,我们有两个选择:

    选项 1:通过 npm 取消链接:

    1:转到您的项目并执行npm unlink gulp-task 这将删除链接的已安装模块

    2:进入 gulp-task 目录并执行npm unlink 以删除符号链接。 注意我们没有使用模块的名称

    3:庆祝


    如果这不起作用,请通过查找全局安装的模块进行验证。我的位置 ls -la /usr/local/lib/node_modules/ 如果您使用的是 nvm,它将是不同的路径


    选项 2:像普通的 linux 大师一样删除符号链接

    1:找到你的全局依赖cd /usr/local/lib/node_modules/

    2:删除符号链接只需使用rm 命令

    rm gulp-task 确保最后没有/

    rm gulp-task/ 错了 ??

    rm gulp-task✔️

    【讨论】:

    • 做一个普通的npm-unlink 删除了我项目中的所有包。
    【解决方案4】:

    如果您在更改后不小心做了npm link generator-webapp 之类的事情,您可以通过克隆正确的生成器并链接那个来修复它。

    git clone https://github.com/yeoman/generator-webapp.git;
    # for fixing generator-webapp, replace with your required repository
    cd generator-webapp;
    npm link;
    

    【讨论】:

      【解决方案5】:

      “npm install”将使用“npm link”安装的 node_modules 中的所有依赖项替换为来自 npmjs 的版本(在 package.json 中指定)

      【讨论】:

      • OP 询问如何卸载使用npm link 而不是npm link somepackage 安装的软件包。您的建议会将包留在全局 node_modules 中。
      猜你喜欢
      • 1970-01-01
      • 2018-07-27
      • 2018-06-28
      • 2021-10-17
      • 2022-07-07
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      • 2019-01-01
      相关资源
      最近更新 更多