让你成为npm忍者的10个技巧

克雷格的盾牌
分享

飞剑嵌在卷轴里"width=

本文由Vildan Sortic马特·伯内特而且汤姆·格列柯.感谢所有SitePoint的同行审必威西盟体育网页登录稿人,让SitePoint的内容成为最好的!

虽然Facebook的新功能令人兴奋不已纱项目在美国,Node.js的持续成功很大程度上要归功于它最初的包管理器,npm

几个简单的npm命令就可以初始化一个文件夹(npm init),下载软件包(npm安装)并创建测试(npm测试)和自订脚本(npm运行),供你在项目中使用。很少有人深入研究,但是有一些npm技巧可以彻底改变你的日常开发任务。

请注意:如果你需要npm的入门知识,请查看我们的初学者指南.如果你对npm和Yarn之间的区别感到困惑,请参阅我们的帖子:Yarn vs npm:你需要知道的一切

1.得到帮助!

NPM在线帮助而且CLI命令文档很好,但在浏览器之间切换并不总是很方便。从命令行可以快速提示所有选项:

npm帮助

还可以显示特定npm命令的帮助:

npm帮助<命令>

例如,NPM帮助安装

或者查看命令参数的快速参考:

npm<命令>- h

2.命令自动补全

NPM为使用bash的系统提供了命令自动补全(包括Bash for Windows 10):

npm完成>>~ / . bashrc

或Z壳层:

npm完成>>~ / . zshrc

重新加载shell配置文件,例如:

~ / . bashrc

现在式npm ins,点击选项卡而且安装就会出现。你再也不用浪费时间打字了!

3.修复全局模块权限

类linux系统在尝试安装全局包时可能会抛出权限错误。你可以提前sudo任何NPM命令,但这是一个危险的选择。一个更好的解决方案是将npm的默认目录更改为你自己的目录:

mkdir~ / .npm-globalnpm配置前缀“~ / .npm-global”

添加下面的行到~ / . bashrc~ / . zshrc适当使用您选择的文本编辑器:

出口路径$ HOME/ .npm-global / bin:美元的路径

重新加载外壳配置文件(源~ / . bashrc),然后将NPM重新安装到用户拥有的新位置:

npm安装- gnpm

这也会将npm更新到最新版本。

4.保持npm的更新

你可以显示npm的版本号:

npm- v

并更新,如果需要使用:

npm安装- gnpm

当一个新的主版本Node发布时,你可能还需要重新构建c++插件:

npm重建

更进一步说,如果你需要管理多个版本的Node.js和npm的更新,可以考虑以下选项nvm而且n.我们也有关于这方面的教程:快速提示:使用nvm安装多个版本的Node.js

5.定义npm init默认值

初始化新项目文件夹npm init.这将提示您输入有关项目的更多详细信息,并创建一个初始值package.json文件。

如果您厌倦了每次启动新项目时都要重新输入相同的信息,那么可以使用可能是国旗:

npminit - y

或者,你可以为npm设置一些合理的默认值:

npm配置init.author.name<的名字>npm配置init.author.email<电子邮件>

6.复杂的包搜索

在写这篇文章的时候,npm上有超过35万个可用的包,而且每天都有更多的包出现。虽然很多都很棒,但你可能想要避免不太受欢迎、有问题或停产的软件包。搜索在npmjs.com而且GitHub是可行的,但还有其他选择…

npm

npm根据项目版本、下载数量、最新更新日期、提交频率、测试覆盖范围、文档、贡献者数量、问题、星级、分叉,甚至作者在社区中的地位,对软件包进行排名,以提供总体质量评分。

npm发现

npm发现定位通常与其他包一起使用的包,例如。分析体与表达。

包的PageRank

包的PageRank搜索和排序npm包关联的谷歌排名。

策划npm列表

或者,利用别人的搜索成功。我经常提到很棒的node . jssindresorhus在寻找一个健壮的解决方案时。

7.管理您的包

您已经选择了软件包并安装了依赖项。让我们列出我们拥有的:

npm列表

ls而且可以用作别名列表).

列表显示了所有内容:包、子包、子包的子包等等。使用以下方法将输出限制为顶级包:

npm列表——深度0

可以使用以下命令打开软件包主页:

npm首页<>

这只在你的系统可以打开浏览器的情况下才有效——在OS Server版本上它会失败。类似地,你可以打开一个包的GitHub存储库:

npm回购<>

或者它的文档:

npm文档<>

或者当前的bug列表:

npm错误<>

npm列表报告,当您安装了无关的包-那些在您的package.json文件。你可以npm卸载将它们分别或全部去除:

npm修剪

如果你加上——生产或者有NODE_ENV环境变量设置为生产,指定为devDependenciespackage.json也会被移除。

8.锁定的依赖性

默认情况下,npm引用包版本号时使用插入符号()字符安装包时使用——保存——save-dev.这将包固定到它的主版本号。例如,^ 1.5.1允许从该版本到但不包括的任何内容2.0.0在以下情况安装npm更新运行。

比较保守的波浪线()字符将包固定到次要版本。例如,~ 1.5.1允许从该版本到但不包括的任何内容1.6.0在以下情况安装npm更新运行。波浪号前缀可以设置为默认值:

npm配置save-prefix“~”

对于那些对任何可能破坏你的系统的更新都很偏执的人,你可以配置npm只使用确切的版本号:

npm配置save-exact真正的

或者,你可以收缩包装你的项目使用:

npm收缩包装

这将生成一个npm-shrinkwrap.json包含您正在使用的依赖项的特定版本的文件。默认情况下使用该文件,并将覆盖该文件package.json运行时npm安装

9.查找过时的模块

您如何知道依赖项何时已更新?我使用了几个月的过程是列出我的依赖项(NPM list——depth=0),在网上搜寻有关的包裹npmjs.com并手动检查已更改的版本号。几个小时的乐趣。幸运的是,有一个更简单的选择:

npm过时的

NPM过时-g对于全局包,比如NPM本身。

您还可以查看单个包的当前版本:

npm列表<>

并检查当前和历史版本:

npm视图<>版本

NPM视图显示关于单个包的所有信息,包括其依赖项、关键字、更新日期、贡献者、存储库、许可证等。

10.使用开发包

在开发包时,您通常希望在其他项目中尝试它们或从任何目录运行它们(如果您的应用程序支持它)。不需要将包发布到npm注册表并全局安装-只需使用:

npm链接

从包文件夹。这将在该包的全局文件夹中创建一个符号链接。使用时,你会看到参考:

npmList -g——depth0

npm过时的- g

您现在可以从命令行运行package或将其包含在任何项目中需要

或者,您也可以通过文件路径声明依赖项package.json,如。

“依赖”“。”“文件:. . / myproject /”

以上就是我最喜欢的一些npm技巧,但我是否漏掉了你的呢?欢迎评论…

使用Verdaccio托管、发布和管理私有npm包"></a>
         <div class= 使用Verdaccio托管、发布和管理私有npm包 Vildan Softic
把咕噜赶走!使用npm作为构建工具的指南"></a>
         <div class= 把咕噜赶走!使用npm作为构建工具的指南 彼得Dierx
如何解决npm模块的全局依赖问题"></a>
         <div class= 如何解决npm模块的全局依赖问题 乔·齐默尔曼
在Node.js中使用npm link"></a>
         <div class= 在Node.js中使用npm link Golo登
Baidu