对于一个项目,常用的一些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>

例如:`javascript
npm help install


另一种方式是通过下面的命令:

npm -h


2. npm 命令自动完成npm 通过bash提供了命令自动完成功能(包括 Bash for Windows 10 ):

npm completion >> ~/.bashrc

//or Z shell

npm completion >> ~/.zshrc

 重新加载shell配置文件:

source ~/.bashrc


现在,在终端注入 npm ins ,然后按下 tab 键就会出现 install 了,不会再浪费时间去全部输入了。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:

npm install -g npm


当 Node 的主版本 released 之后,你也可能需要重新构建 C++ 扩展:

npm rebuild


如果你需要管理多个版本的node.js和npm,可以考虑使用 n 或者 nvm。这有一篇关于 nvm 的文章:使用 nvm 安装多版本的Node.js5.定义默认的 npm init使用 npm init 初始化一个新的项目,这会提示你关于项目的更多细节,并创建一个 package.json 文件。如果你厌倦了每次开始一个新的项目都需要重新输入同样的信息,可以使用 -y 标记表示你能接受 package.json 文件的一堆默认值:

npm init -y


或者你可以设置一些语义化的默认值:

npm config set init.author.name
npm config set init.author.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


(ls、la & ll 可以用作 list 的别名)该命令会显示所有模块:(安装的)模块,子模块以及子模块的子模块等。可以限制输出的模块层级:

npm list --depth=0


打开一个模块的主页:

npm home


这只有在你的系统能打开浏览器时有用--在服务端的系统上会失败。同样,可以打开一个模块的 Github 仓库:

npm repo


或者它的文档:

npm docs


或者它目前的bugs列表:

npm bugs


npm list 会显示和你已经安装地模块的关联模块---这些没有在 package.json文件中被引用。你可以单独 npm uninstall 每一个模块或者全部移除它们:

npm prune


如果安装模块时你添加了 --production 标记或者 NODE_ENV 被设置成 production,package.json 文件中被指定为 devDependencies 的模块也会被移除。8.锁定依赖默认情况下,当用 --save/-S 或者 --save-dev/-D 安装一个模块时,npm 通过脱字符(^)来限定所安装模块的主版本号。例如,当运行 npm update 时, ^1.5.1 允许安装版本号大于 1.5.1 但小于 2.0.0 版本的模块。波浪号(~)字符是限定模块的次要版本。例如,当运行 npm update 时, ~1.5.1 允许安装版本号大于 1.5.1但小于 1.6.0 版本的模块。可以将需要安装的模块版本前缀默认设置成波浪号(~):

npm config set save-prefix="~"


对于那些偏执的认为任何更新(模块的行为)会破坏系统的人,可以配置npm仅安装精确版本号的模块:

npm config set save-exact true


另一个选择是,可以在项目中使用 shrinkwrap:

npm shrinkwrap


这会生成一个 shrinkwrap.json 文件,该文件包含了你正在使用的模块的指定版本。当运行 npm install时,该文件所指定的模块版本会覆盖 package.json 文件中所指定的版本。9. 找出过时的模块怎么知道一个模块已经更新了呢?我之前的方式是先列举出项目所依赖的模块(npm list --depth=0),然后在 npmjs.com 上找到该模块,手动检查该模块的版本是否已经更新。这非常费时。幸运的是,有一个更简单的方式:

npm outdated


或者 npm outdated -g 来查找全局模块。你也可以查看一个独立模块的当前版本:

npm list


也可以查看检验当前和历史版本:

npm view versions


npm view <package> 会显示一个独立模块的所有信息,包括它的依赖、关键字、更新日期、贡献者、仓库地址和许可证等。10.使用开发中的模块当你正在开发一个模块时,会经常想在其它项目中尝试使用或者在任何一个目录运行它(如果你的应用支持),这时没必要将其发布到 npm,并全局安装---仅需在该模块所在目录使用下面的命令:

npn link


该命令会为模块在全局目录下创建一个符号链接。可以通过下面的命令查看模块引用:

npm list -g --depth=0


或者:

npm outdated -g

现在,就可以从命令行运行模块或者通过 require 在任何项目中引入该模块。另一个选择是,可以通过文件路径在 package.json 文件中声明对该模块的依赖:

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

 ####文章转载自 开源中国社区 [http://www.oschina.net]

提升你的开发效率,10 个 NPM 使用技巧相关推荐

  1. 使用 jsDoc 提升我们的开发效率

    使用 jsDoc 提升我们的开发效率 缘起 作为前端开发者目前使用最广泛的编程语言 JavaScript,也是有很多的缺点的!大家都直到 JavaScript 是一个弱类型的编程语言,这就造成了一问题 ...

  2. python开发效率怎样提高_python 提高开发效率的5个小技巧

    很多时候学习是一种难者不会,会者不难的事情. 下面的5个python技巧是性价比极高的知识点,一学就会,不难但是相当管用. 使用交互模式 使用python -i xxxx.py可以直接进入python ...

  3. vscode 全项目替换_利用vscode插件提升前端国际化开发效率

    1. 起因 国际化是我们目前开发工作中非常重要的一环.对于老项目,我们可以通过便捷的方式对中文文案进行批量国际化:但是对于新增的功能或者模块开发,一般还是开发同学对文案逐个进行国际化.我自己的开发流程 ...

  4. 如何用 IDEA 提升十倍开发效率?

    工欲善其事,必先利其器.想要提升编程开发效率,必须选择一款顺手的开发工具. JetBrains 公司提供了一系列功能强大.风格统一的开发工具,深受开发者喜爱.其中,IDEA 是面向 Java 开发的专 ...

  5. 使用ShellJS提升你的开发效率(一)

    Shelljs - Unix shell commands for Node.js Shelljs是Node.js下的脚本语言解析器,具有丰富且强大的底层操作(Windows/Linux/OS X)权 ...

  6. 天下武功,唯快不破:后端Java人怎么提升自己的开发效率?

    对一个 Java 后端程序员来说,MyBatis.Hibernate.Data Jdbc 等都是我们常用的 ORM 框架.它们有时候很好用,比如简单的 CRUD,事务的支持都非常棒.但有时候用起来也非 ...

  7. 谈谈前后端分离实践中如何提升RESTful API开发效率

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取推荐书籍 来源:33h.co/edZR 团队内部RestAPI开发采用设计驱 ...

  8. 几个提升Go业务开发效率的流行框架和开源库

    最近总有一些初学Go语言的小伙伴问我在业务开发中一般都使用什么web框架.开源中间件:所以我总结了我在日常开发中使用到的库,这些库不一定是特别完美的,但是基本可以解决日常工作需求,接下来我们就来看一下 ...

  9. plsql打开sql窗口快捷键_可以提升3倍开发效率的 Intellij IDEA快捷键大全汇总(2019)...

    整理了一下IDEA的常用快捷键,可以打印出来或者弄成图片设置为桌面,为广大的程序员们节省更多的时间去谈恋爱. 常用快捷键1 Ctrl+Shift + Enter,语句完成 "!", ...

最新文章

  1. matlab 数据集制作,机器学习数据集制作与划分MATLAB实现
  2. 10624 - Super Number
  3. 洛谷 - P1361 小M的作物(最大流最小割)
  4. php 数据类型转换与比较
  5. ExtJs2.0学习系列(7)--Ext.FormPanel之第四式(其他组件示例篇)
  6. Metatdata分析
  7. XSS-Game Level 2
  8. VS2010 编译 openssl 源代码(输出 libeay32 and ssleay32 静态库和动态库)
  9. linux 用户操作相关命令
  10. vue使用talkIngData统计
  11. Tensorflow (2): tf.slim库解读
  12. TRS专题制作选件手册
  13. 拥抱变化—— 可扩展性杂谈
  14. 比对软件Blast,Blast+,Diamond如何选
  15. 美食杰 login的实现效果
  16. 记一次git pull报错问题 is owned by: ‘xxx‘ but the current user is ‘xxx‘
  17. 《清单革命》的读后感优秀范文3900字
  18. Java实战项目:新手入门小游戏——连连看超详细教程
  19. Python+Vue计算机毕业设计安达驾校管理系统62e2u(源码+程序+LW+部署)
  20. 最全的Matlab经典教程免费下载

热门文章

  1. org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException:
  2. Java和iText导出pdf文档
  3. leetcode614. 二级关注者(SQL)
  4. Date类的构造方法以及成员方法220
  5. 制作作品图片_不懂人文后期制作流程?来,大师手把手教你
  6. 火狐浏览器添加MetaMask钱包和本地开启私有链开发
  7. 算法入门篇八 贪心算法
  8. 第2、3讲 图像的存储格式
  9. MPEG4 H.264学习笔记之三 ------ 熵编码
  10. Java 自定义异常(转载)