• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

npm命令--依赖包的管理(安装/卸载/发布等)--使用/

武飞扬头像
IT利刃出鞘
帮助1

简介

说明

        本文介绍npm的包相关的命令。

官网

npm 中文文档

安装包

卸载包

命令

作用

描述

npm uninstall <pkg>

卸载包

同义词:remove, rm, r, un, unlink

npm uninstall [<@scope>/]<pkg>[@<version>]... [-S|--save|-D|--save-dev|-O|--save-optional]

参数的含义与npm install一致。

npm uninstall <pkg1> <pkg2> 卸载多个包

例如:

npm uninstall eslint eslint-plugin-import

更新包

命令

作用

描述

npm update <pkg> [-g]

更新包

npm update用的比较少,不如直接npm install 来的方便

查看包

命令

作用

描述

npm root [pkg] [-g]

查看包安装路径

 

npm search <pkg> [-g]

搜索包

 

npm list [pkg] [-g]

列出包。同义词:list, la, ll

选项:

    parseable=true    //目录的形式来展现当前安装的所有node包

例1:列出顶层所有全局安装过的包

npm list -g --depth=0

npm info [<pkg>] [-g]

查看包信息。

例:npm info express [author]  //后边可直接跟package.json的键

npm view <pkg> [<labelName>] [-g]

查看包的package.json。同义词:v

指定labelName可查看标签内容。

查看thrift所有版本:

npm view thrift versions  //或者npm view thrift@* version

npm outdated [<pkg>] [-g]

查看过时的包

 

发布包

命令

作用

描述

npm adduser

获得用户名

要根据提示操作。可加--registry xxx 加快速度

npm whoami

检测是否已取得账号

 

npm publish 

发布包

将包发布到npm。(稍后可在此网站看到自己的包)

    //不能发布npm中已经存在的包。

    //npm publish --tag beta   可以添加tag。

    //此时,可以用任意一台计算机npm install xxx 获得自己的包。

npm unpublish

撤销发布

npm unpublish packageName/[<package>@<version>] --force

    //只有在发包的24小时内才允许撤销发布的包

    //即使撤销了发布的包,发布时也不能再和被撤销的包的名称和版本重复了

关联包

命令

命令 作用 描述

npm link

创建本地包与全局包链接

将全局的包链接到本地

    全局模式安装的包不能直接通过 require 使用,但通过 npm link 命令可以打破这一限制。

    示例:npm install -g express 安装 express,在express包目录下运行命令:

npm link express ./node_modules/express -> /user/local/lib/node_modules/express

此时,在 node_modules 子目录中发现一个指向安装到全局的包的符号链接。

将本地的包链接到全局

    使用方法:在包目录(package.json 所在目录)中运行 npm link 命令。如果我们要开发一个包,利用这种方法可以非常方便地在不同的工程间进行测试。

    如果在outer 包目录(此包有package.json)下面有两个包package1 和package2,在package2 目录下执行 npm link命令,则会link outer 这个包 , 而不是package2:heavy_exclamation_mark: (它会link最外层包)

    解决办法,先把最外层的package.json改为 package.json-xxx,  然后在内层包进行npm link, 然后再改回原来名字。如果link有改动,需要重新npm start.否则缓存的是原来的文件 (或者尝试先将 import 语句注释掉,然后再import来解决)

npm unlink 解除关联

解除项目与模块的依赖:在项目目录下执行npm unlink packageName

全局环境移除allenModule95模块链接:在该模块目录下执行npm unlink allenModule95即可

实例

        自己开发一个依赖包,在多个项目中使用它,可直接发布到官网,但修改会非常麻烦,且不利于在多个项目中使用。可使用npm link解决。本处假设我们开发一个名为allenModule95的依赖包。

不使用npm link时

1.在该依赖包下运行npm init命令,并编写index.js文件。

  1.  
    module.exports = {
  2.  
    name: "allenModule95Name",
  3.  
    sayHello: function(){
  4.  
    console.log("hello allenModule95");
  5.  
    }
  6.  
    }

2. myProject目录下编写demo.js文件 

  1.  
    var myModule = require("allenModule95");
  2.  
     
  3.  
    console.log(myModule.name);
  4.  
    myModule.sayHello();

3. 运行node demo   //报错,allenModule95模块找不到,因为此时的require搜寻目录没有包含此模块。

使用npm link

1. 切换到allenModule95目录下,执行npm link。作用:在全局环境下,生成一个符号链接文件,该文件的名字就是package.json文件中指定的模块名,同时我们对此模块的修改会实时反馈在全局目录下。

2. 切换到myProject目录下,执行npm link allenModule95。作用:将自定义的模块与此项目连接起来。

3. 执行:node demo    //成功打印出如下内容

  1.  
    allenModule95
  2.  
    hello allenModule95

总结

  • 如此,我们可以在任何目录下使用该模块,并且一处修改,处处改变,节省了同步依赖包的步骤。
  • 如果想解除项目与模块的依赖则可以在项目目录下执行npm unlink allenModule95即可。
  • 如果想要从全局环境移除allenModule95模块链接,则可以在该模块目录下执行npm unlink allenModule95即可。

 其他网址

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfiiigf
系列文章
更多 icon
同类精品
更多 icon
继续加载