你看一个同事正在编码,其中应用上了一些简写和技巧,不知为何,你不熟悉它并且你的大脑一片混乱,这种场景发生在过去我们每个人身上。

在这篇短文中,我们将会介绍一些非常实用的 npm 技巧。有很多文章中的技巧会比这里覆盖得更广,所以我选择把重点放在与开发者最相关和使用的工作流中。

开始之前一些基础的简写

为了让每个人都对齐进度,特别是新来的同学,一起来快速浏览一遍基础简写,保证没有错过任何细节。

安装包

常规: npm install pkg 简写:npm i pkg

安装包在全局

常规: npm i --global pkg 简写:npm i -g pkg

安装包作为依赖(dependency)

常规: npm i --save pkg 简写:npm i -S pkg

安装包作为开发依赖(devDependency)

常规: npm i --save-dev pkg 简写:npm i -D pkg

其余的简写请阅读 npm 的简写列表

现在开始让我们来做一些有趣的事情吧。

1.初始化一个新的包

我们都知道 npm init,当我们创建一个新的包时,这是我们做的第一件事。

但是,以上的问题是非常烦人的,同时我们会修改它,所以我们为什么不避开它呢?

npm init -y 和 npm init -f 可以很好地解决。

2.运行测试

另一个我们都会用到的命令是 npm test,我们当中大多数人每天都在使用它,可能一天好几次。

假如我告诉,你用减少 40% 的字数做同样的事情那要怎么做呢?我们可以这样做,并且这是一个完胜。

那就是 npm t。

3.列举可运行的脚本

我们拿到了一个新项目,就会考虑如何去开始上手。我们经常会自问这些事情:我该如何运行呢?哪些脚本是可用的呢?

一个方法是打开 package.json 文件并检查 scripts 部分。

我们当然可以做得更好,所以我们可以运行 npm run 并且得到所有可用脚本的列表。

其余的选项可以安装 ntl (npm i -g ntl),然后在项目文件目录下运行 ntl ,这样可以让运行脚本变得非常方便。

4.列举已安装的包

与可用脚本相似,有时我们会问自己:我们拥有哪些依赖包在项目中。

我们可以再一次打开 package.json 文件去检查,但是我们已经知道可以做的更好。

迎接 npm ls --depth 0。

列举全局安装的包,我们可以加上 -g 标志,npm ls -g --depth 0。

5.运行本地安装的可执行文件

我们安装了包在项目中,它附带了一个可执行文件,但是它只能通过 npm 脚本来运行,你想知道为什么或者如何去拿下它吗?

首先来理解为什么 -- 当我们在 terminal 中执行命令时,实际发生的是,它在 PATH 环境变量里列举出所有的路径,去寻找相同名字的可执行文件。安装在本地的包只在本地注册了他们的执行文件,所以他们不会被列在 PATH 环境变量中以至于不会被找到。

这时你可能会问,当我们通过 npm 脚本运行这些可执行文件时是如何正常工作的?问的好!这是因为 npm 用了一些“手法”并且添加了额外的文件夹到 PATH 中,<project-directory>/node_modules/.bin。

你可以通过运行 npm run env | grep "$PATH 看到它,也可以运行 npm run env 来看到所有可用的环境变量,npm 会添加一些有趣的东西。

node_modules/.bin,假如你知道,这恰恰就是本地安装包放置其可执行文件的地方。

在项目目录下,让我们来运行 ./node_modules/.bin/mocha 看看。

很简单对吧?无论何时,你想要运行本地安装的执行文件的话就运行 ./node_modules/.bin/<command>。

6.在网上找到你的包

你可能会在 package.json 文件中看到仓库的入口并且想知道它用来做什么呢?

回答这个问题,只需要简单地运行 npm repo 就可以在浏览器打开并查看了。

还有同样适用的是,npm home 命令对应 homepage 入口。

假如你想在 npmjs.com 打开包的页面,这也有相当棒的简写可以做到,npm docs。

7.在其他脚本之前和之后运行脚本

你可能熟悉诸如预测试之类的脚本,这允许你可以在运行测试脚本之前编写代码。

你可能会惊喜地发现,对于每个脚本可以有 pre 和 post 脚本,包括你自己的脚本。

这在使用 npm 作为构建工具和需要编写许多脚本的项目中会非常有用。

8.检测包的版本

假如你拥有一个包,使用了 semver (语义化版本规范)来控制版本,在发布新版本之前需要做一次版本检测。

其中一个方法是,打开 package.json 文件去手动修改版本,但我们希望不要这样去做。

更简单的方法是运行 npm version 带上 major,minor 或者 patch。

npm技巧的更多相关文章

  1. 提升你的开发效率,10 个 NPM 使用技巧

    对于一个项目,常用的一些npm简单命令包含的功能有:初始化一个文件夹(npm init),下载npm模块(npm install),创建测试(npm test) 和自定义脚本(npm run).但是, ...

  2. NPM使用技巧

    如果你是一个JavaScript系的开发者,一定不会陌生NPM,它既是一个平台,也是一个工具.在这个平台上,我们能够使用其他开发者提供的功能代码,当然我们也能将我们自己代码提交到这里分享给世界上的开发 ...

  3. 10个 NPM 使用技巧

    对于一个项目,常用的一些npm简单命令包含的功能有:初始化一个文件夹( npm init ),下载npm模块( npm install ),创建测试( npm tese ) 和自定义脚本( npm r ...

  4. npm常用技巧

    npm中内置了大量的实用技巧,如何高效的使用它们是一件充满挑战的事情.学会下面11个技巧,将会让你在任何项目中使用npm都会事半功倍. 1.如何打开package的主页 npm home $packa ...

  5. nodejs进阶(1)——npm使用技巧和最佳实践

    nodejs进阶教程,小白绕道!!! npm使用技巧和最佳实践 前提:请确保安装了node.js npm的最佳实践 npm install是最常见的npm cli命令,但是它还有更多能力!接下来你会了 ...

  6. 【NPM】361- 10个 NPM 使用技巧

    点击上方"前端自习课"关注,学习起来~ 对于一个项目,常用的一些npm简单命令包含的功能有: 初始化一个文件夹( npm init ) 下载npm模块( npm install ) ...

  7. 13 个 NPM 快速开发技巧

    摘要: 玩转npm. 作者:前端小智 原文:13 个 npm 快速开发技巧 Fundebug经授权转载,版权归原作者所有. 为了保证的可读性,本文采用意译而非直译. 每天,数以百万计的开发人员使用 n ...

  8. 有关npm rum的3个简洁技巧

    [编者按]本文作者为来自 MongoDB 的 NodeJS 工程师 Valeri Karpov.Valeri 专注于维护常见的 Mongoose ODM,是<Professional Angul ...

  9. npm使用过程中的一些错误解决办法及npm常用命令和技巧

    node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外的网站 ...

随机推荐

  1. Codeforces 1131 C. Birthday-暴力 (Codeforces Round #541 (Div. 2))

    C. Birthday time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...

  2. POJ 1860 Currency Exchange【SPFA判环】

    Several currency exchange points are working in our city. Let us suppose that each point specializes ...

  3. Python3 文件操作基本语法

    对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 f = open('lyrics') #打开文件 first_line = f.readline() prin ...

  4. TensorFlow-GPU安装配置(win10+tensorflow1.6+CUDA9.0+cudnn7.0+python3.6+Visual Studio2013)

    安装步骤: TensorFlow官网 tensorflow一般只能装在python3上,CUDA9.0搭配cudnn7.0,CUDA8.0搭配cudnn6.0 查看对应要安装的环境版本(因为会不断更新 ...

  5. maven "Generating project in Batch mode"问题的解决

    在maven的五分钟入门里面,有这样一个命令: mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -Darc ...

  6. 洛谷——P1223 排队接水

    P1223 排队接水 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行, ...

  7. 27、Flask实战第27天:cms后台登录

    cms后台登录界面 后台登录页面,我们不用自己写,只需要去Bootstrap中文网去找一个模板改一下就行 这里使用的模板是:https://v3.bootcss.com/examples/signin ...

  8. Polynomial Problem(hdu 1296 表达式求值)

    We have learned how to obtain the value of a polynomial when we were a middle school student. If f(x ...

  9. 【数论】【中国剩余定理】【LCM】hdu1788 Chinese remainder theorem again

    根据题目容易得到N%Mi=Mi-a. 那么可得N%Mi+a=Mi. 两侧同时对Mi取余,可得(N+a)%Mi=0. 将N+a看成一个变量,就可以把原问题转化成求Mi的LCM,最后减去a即可. #inc ...

  10. 操作系统介绍、python基础

    操作系统 什么是操作系统? 操作系统位于计算机硬件与应用软件之间,是一个协调.管理.控制计算机硬件资源与软件资源的控制程序.  2.为何要操作系统 ①  .控制硬件 ②  .把对硬件的复杂的操作封装成 ...