10个技巧和窍门会让你成为npm忍者

手里剑嵌入在卷轴中

本文由Vildan SorticMatt BurnettTom Greco进行了同行评审。 感谢所有SitePoint的同行评审人员使SitePoint内容达到最佳状态!

尽管Facebook的新Yarn项目令人兴奋,但Node.js的持续成功很大程度上归功于其原始的软件包管理器npm

只需几个简单的npm命令即可初始化文件夹( npm init ),下载软件包( npm install )并创建测试( npm test )和自定义脚本( npm run )以在项目中使用。 很少深入研究,但是有一些npm提示和技巧可以彻底改变您的日常开发任务。

注意 :如果需要npm 入门 ,请查阅我们的初学者指南 。 如果您对npm和Yarn之间的区别感到困惑,请参阅我们的文章: Yarn vs npm:您需要知道的一切

1.获得帮助!

npm联机帮助CLI命令文档非常出色,但是在浏览器之间来回切换并不总是很方便。 可从命令行快速提醒所有选项:

npm help

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

npm help <command>

例如, npm help install

或者,您可以查看快速命令参数参考:

npm <command> -h

2. npm命令自动完成

npm为使用bash(包括Windows 10的Bash )的系统提供命令自动完成功能:

npm completion >> ~/.bashrc

或Z shell:

npm completion >> ~/.zshrc

重新加载外壳配置文件,例如

source ~/.bashrc

现在输入npm ins并点击TABinstall将会出现。 您再也不需要浪费时间再次输入完整的内容!

3.修复全局模块权限

当您尝试安装全局软件包时,类似Linux的系统可能会抛出权限错误。 您可以在任何npm命令前添加sudo ,但这是一个危险的选择。 更好的解决方案是将npm的默认目录更改为您拥有的默认目录:

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'

使用所选的文本编辑器将以下行适当地添加到~/.bashrc~/.zshrc中:

export PATH="$HOME/.npm-global/bin:$PATH"

重新加载外壳程序配置文件( source ~/.bashrc ),然后将npm本身重新安装到新的用户拥有的位置:

npm install -g npm

这还将把npm更新到最新版本。

4.保持npm更新

您可以显示npm版本号:

npm -v

并根据需要更新:

npm install -g npm

发布新的主要版本的Node时,您可能还需要重建C ++插件:

npm rebuild

更进一步,如果您需要管理多个版本的Node.js和npm的更新,请考虑使用诸如nvmn之类的选项。 我们也有关于它的教程: 快速提示:使用nvm安装Node.js的多个版本

5.定义npm init默认值

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

如果您在每次启动新项目时都厌倦了重新键入相同的信息,则可以使用-y标志接受一堆默认值:

npm init -y

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

npm config set init.author.name <name>
npm config set init.author.email <email>

6.精致的包裹搜索

在撰写本文时,npm上有超过350,000个软件包可用,每天都有更多软件包出现。 尽管很多功能很棒,但您可能希望避免使用不太受欢迎,越野车或停产的产品。 在npmjs.comGitHub上搜索是可行的,但还有其他选择……

npms

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

npm发现

npm Discover可以找到其他人常用的软件包,例如Express的body-parser

由PageRank打包

PageRank的软件包按相关的Google排名搜索和排序npm软件包。

策划的npm列表

或者,利用他人的搜索成功。 我常常把真棒的Node.jssindresorhus寻找一个强大的解决方案的时候。

7.管理您的包裹

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

npm list

lslall可以用作list别名)。

该列表显示了所有内容:包,子包,子包的子包等。使用以下命令将输出限制为仅顶级包:

npm list --depth=0

可以通过以下方式打开软件包主页:

npm home <package>

这仅在您的系统可以打开浏览器的情况下才有效–在OS Server版本上将失败。 同样,您可以打开包的GitHub存储库:

npm repo <package>

或其文档:

npm docs <package>

或当前的错误列表:

npm bugs <package>

当安装了无关的软件包时, npm list报告-这些软件包在package.json文件中不再引用。 您可以npm uninstall它们,或使用以下方法将其全部删除:

npm prune

如果添加--production标志或将NODE_ENV环境变量设置为production ,则还将删除package.json指定为devDependencies软件包。

8.锁定依赖性

默认情况下,在使用--save--save-dev安装软件包时,npm会使用脱字符( ^ )引用软件包版本号。 这会将软件包固定到其主要版本号。 例如,运行npm update时, ^1.5.1允许安装该版本至2.0.0但不包括2.0.0任何版本。

较为保守的波浪号( ~ )字符会将程序包固定到次要版本。 例如, ~1.5.1允许在npm update时安装该版本到1(但不包括1.6.0 。 可以使用以下命令将代字号前缀设置为默认值:

npm config set save-prefix="~"

对于那些担心可能破坏系统的更新的人,可以将npm配置为仅使用确切的版本号:

npm config set save-exact true

或者,您可以使用以下方法收缩项目

npm shrinkwrap

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

9.查找过时的模块

您如何知道依赖项已更新的时间? 我使用了几个月的过程是列出我的依赖项( npm list --depth=0 ),在npmjs.com上搜索软件包,然后手动检查哪个版本号已更改。 数小时的乐趣。 幸运的是,有一个更简单的选择:

npm outdated

或者对于npm本身之类的全局软件包, npm outdated -g

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

npm list <package>

并检查当前和历史版本:

npm view <package> versions

npm view <package>显示有关单个软件包的所有信息,包括其依赖性,关键字,更新日期,贡献者,存储库,许可证等。

10.使用开发包

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

npm link

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

npm list -g --depth=0

要么

npm outdated -g

现在,您可以从命令行运行软件包,或将其包含在任何带有require项目中。

另外,您还可以在package.json通过filepath声明依赖关系,例如

"dependencies": {
  "myproject": "file:../myproject/"
}

因此,这些是我最喜欢的npm技巧,但我错过了其中一个吗? 欢迎发表评论…

From: https://www.sitepoint.com/10-npm-tips-and-tricks/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值