对于一个项目,常用的一些npm简单命令包含的功能有:初始化一个文件夹( npm init ),下载npm模块( npm install ),创建测试( npm test ) 和自定义脚本( npm run )。但是,进一步了解一些 npm 的使用技巧可以彻底改变你的日常开发任务。 注: 如果你需要关于初学npm的参考,可以参阅我们的初学者指南。如果你对 npm 和 Yarn 之间的差异感到困扰,可以参阅我们发表的文章:Yarn vs npm:你需要知道的一切 1. 获取帮助 npm 文档 和 CLI 命令行文档 是非常不错地的学习资料,但需要通过浏览器访问,这并不是很方便。因而可以通过命令行快速获取所有可选项: npm help 此外,还能获取特定 npm 命令的使用帮助: npm help <command> 例如: 另一种方式是通过下面的命令: npm <command> -h 2. npm 命令自动完成 npm 通过bash提供了命令自动完成功能(包括 Bash for Windows 10 ): npm completion >> ~/.bashrc //or Z shell npm completion >> ~/.zshrc 重新加载shell配置文件: source ~/.bashrc 现在,在终端注入 3.修复全局模块的权限 当你试图安装全部模块时,类 Linux 系统可能会抛出权限错误,可以在npm命令之前添加 mkdir ~/.npm-global npm config set prefix '~/.npm-global' 使用适当的文本编辑器将下面的一行添加到 export PATH="$HOME/.npm-global/bin:$PATH" 重新加载配置文件( npm install -g npm 这也会更新npm。 4.持续更新npm 你可以通过下面的命令显示npm当前的版本: npm -v 如果有需要,可以通过下面的命令更新npm: npm install -g npm 当 Node 的主版本 released 之后,你也可能需要重新构建 C++ 扩展: npm rebuild 如果你需要管理多个版本的node.js和npm,可以考虑使用 n 或者 nvm。这有一篇关于 nvm 的文章:使用 nvm 安装多版本的Node.js 5.定义默认的 npm init 使用 如果你厌倦了每次开始一个新的项目都需要重新输入同样的信息,可以使用 npm init -y 或者你可以设置一些语义化的默认值: npm config set init.author.name <name> npm config set init.author.email <email> 6.更精准的模块搜索 到目前为止,npm上已经有超过350000个模块了,并且每天还在持续增长。尽管有很多非常棒的模块,但是你还是想避免使用一些不受欢迎的、存在bug的或者无人维护的模块。在 npmjs 和 Github 上搜索npm模块是很实用但这还有一些其它选择: npms npms 根据一个基于项目版本、模块下载次数、最新更新日期、提交频率、测试覆盖率、文档、贡献者数量、issues数、star数、forks数和作者在社区的地位的综合测量分数进行模块排名。 npm Discover npm Discover 定位于快速搜索和其它模块通常一起使用的模块,如 body-parser 通常和Express一起使用。 Packages by PageRank Packages by PageRank 按照模块的谷歌排名进行搜索和排序。 Curated npm Lists 还一个选择就是利用别人的搜索结果。当需要一个健壮的解决方案时,我经常会参考 sindresorhus 的 Awesome Node.js。 7.管理你的模块 你已经安装了一些模块,看看都有啥: npm list ( 该命令会显示所有模块:(安装的)模块,子模块以及子模块的子模块等。可以限制输出的模块层级: npm list --depth=0 打开一个模块的主页: npm home <package> 这只有在你的系统能打开浏览器时有用--在服务端的系统上会失败。同样,可以打开一个模块的 Github 仓库: npm repo <package> 或者它的文档: npm docs <package> 或者它目前的bugs列表: npm bugs <package>
npm prune 如果安装模块时你添加了 8.锁定依赖 默认情况下,当用 波浪号(~)字符是限定模块的次要版本。例如,当运行 npm config set save-prefix="~" 对于那些偏执的认为任何更新(模块的行为)会破坏系统的人,可以配置npm仅安装精确版本号的模块: npm config set save-exact true 另一个选择是,可以在项目中使用 shrinkwrap: npm shrinkwrap 这会生成一个 9. 找出过时的模块 怎么知道一个模块已经更新了呢?我之前的方式是先列举出项目所依赖的模块( npm outdated 或者 你也可以查看一个独立模块的当前版本: npm list <package> 也可以查看检验当前和历史版本: npm view <package> versions
10.使用开发中的模块 当你正在开发一个模块时,会经常想在其它项目中尝试使用或者在任何一个目录运行它(如果你的应用支持),这时没必要将其发布到 npm,并全局安装---仅需在该模块所在目录使用下面的命令: npn link 该命令会为模块在全局目录下创建一个符号链接。可以通过下面的命令查看模块引用: npm list -g --depth=0 或者: npm outdated -g 现在,就可以从命令行运行模块或者通过 另一个选择是,可以通过文件路径在 "dependencies": { "myproject": "file:../myproject/" } 原文:10 Tips and Tricks That Will Make You an npm Ninja 编译:10个 NPM 使用技巧 译者:dwqs |