使同事羡慕不已的8个npm命令
这篇文章会为你揭示一些有用的 npm 技巧,由于篇幅原因不可能涵盖所有,所以我选择了工程师日常相关且有用的作为本篇文章的关注点。
基本简写
为了大家保持一致,特别是新人,首先我们来快速浏览一些基础的简写。
Installing a package:
通常:
npm install pkg
简写:
npm i pkg
Installing a package globally:
通常:
npm i --global pkg
简写:
npm i -g pkg
Installing a package and save it as a dependency:
通常:
npm i --save pkg
简写:
npm i -S pkg
Installing a package and save it as a devDependency:
通常:
npm i --save-dev pkg
简写:
npm i -D pkg
更多的简写请看官网:https://docs.npmjs.com/misc/config#shorthands-and-other-cli-niceties
接下来让我们开启有趣之旅:
1.Initializing a new package
我们都知道 npm init ,是当我们初始化一个package的第一件事。
但是,这些问题很烦人,所以为什么不避免它呢?
使用
npm init -ynpm init -f
来解救!
2.Running tests
另一个我们都会用的命令是 npm test
,我们中的大多数人会每天使用,甚至一天几次。
幸运的是,使用 npm t
,可以做相同的事!
3.List available scripts
当我们接手一个新项目时,会考虑如何开始手头的工作。我们经常会自问:我们如何运行项目?有哪些脚本命令可以使用?
一种方法是找到package.json文件然后查看里面的 scripts
部分。
当然我们可以做的更优雅一些,可以简单的运行 npm run
来列出所有可使用的脚本命令。
另外还可以安装 ntl
( npm i -g ntl
),然后在项目文件夹下运行 ntl
,同时还支持运行脚本。
4.List installed packages
就像上面一样,有时候我们还会自问项目中都有哪些依赖。
我们同样可以打开package.json文件然后查看,但是我们已经知道我们可以做的更好。
使用 npm ls --depth 0
列出全局安装的包,我们可以使用同样的 -g
的标识, npm ls -g --depth 0
。
5.Running locally-installed executables
在项目中我们安装了一个附带可执行文件的包,但是只有当我们通过 npm script 运行是才可用,你或许会惊奇为何?或知道如何避免它?
首先,我们来理解一下为何--当我们在控制台运行命令时,实际上是在系统环境变量的 PATH
下列出的所有paths中,寻找同名的可执行文件。这就是为何在任何地方都可执行的原因。本地安装的包是把它们的可执行命令注册在本地的,没有被列在 PATH
中,所以不会被找到。
你或许会问:为何在通过 npm script 就可执行?好问题!当以这种方式运行时,npm 做了一些小技巧就是在我们的 PATH
中增加了额外的目录
<project-directory>/node_modules/.bin。
你可通过运行 npm run env | grep "$PATH"
来查看,你同样可运行 npm run env
来查看所有环境变量,npm 增加了一些有趣的东西在里面。
我们在项目目录下运行 ./node_modules/.bin/mocha
来实际看看效果
是不是很简单?无论何时你想运行本地安装的可执行文件,只要简单的敲入 ./node_modules/.bin/<command>
。
6.Find your package on the internet
你或许会在package.json中发现仓库的地址,同时想问此安装包有什么功能? 简单的运行 npm repo
就会在浏览器中打开该仓库地址。 同样运行 npm home
命令就会打开 homepage
的入口。 如果你想在 npmjs.com 中打开包的页面,有一个贴心的命令: npm docs
7.Run scripts before and after other scripts
你可能对类似 pretest 的脚本属性,它可以帮你在运行 test 脚本之前定义一些代码。 真正会使你惊奇的是,你同样可以在自定义脚本中使用!
当你把 npm 作为你的构建工具或者有许多脚本要执行时,这种功能就会很有用。
8.Bumping package’s version
你有一个包,同时使用 semver 做为你的版本记录标准,在你发布新包之前需要填写新的版本号。 其中一种方法就是你打开 package.json 文件然后改变里面的值,但是我们可以不需要这样做。 另一个简单的方法是运行 npm version
并附带上 major
, minor
或者 path
。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [已解决]报错:xlrd.compdoc.CompDocError: Workbook: size exceeds expected 17920 bytes; corrupt?
- [已解决]报错:have mixed types. Specify dtype option on import or set low_memory=False
- Mysql删除表数据,表文件大小不变
- 抓取模板
- 利用os和pandas来合并当前目录下所有excel文件
- Python科学计算:用NumPy快速处理数据
- Python中过滤HTML标签的函数
- 词云图展示
- 将xml文件转为txt文件
- 数据概览神器pandas_profiling
- [未完]构建代理池
- ClickHouse入门实例:样例数据Yandex.Metrica
- Python连接redis
- JavaScript去除数组中重复的数字
- Python装饰器的使用