npm命令
- npm install 安装模块
- npm bin 显示npm的bin目录
- npm config delete
删除npm配置 - npm config get
获取npm配置 - npm config set
[–global] 设置npm配置 - npm config set proxy=http://proxy.tencent.com:8080 设置代理
- npm config set registry http://npm.oa.com 设置npm的镜像地址
- npm config edit 在编辑器中打开npm配置文件
- npm init 交互式的创建package.json文件
- npm pack 创建模块的压缩包,如果没有参数,则npm会打包当前模块目录
- npm publish 发布模块
- npm rm || npm uninstall 删除模块
- npm search 查找模块
- npm update 更新模块
- npm start/stop/test 执行脚本
获取帮助
npm help
npm
npm 命令自动完成
npm 通过bash提供了命令自动完成功能(包括Bash for Windows 10 ):
npm completion >> ~/.bashrc || (or Z shell) npm completion >> ~/.zshrc
重新加载shell配置文件: source ~/.bashrc
现在,在终端注入 npm ins ,然后按下 tab 键就会出现 install 了,不会再浪费时间去全部输入了。
修复全局模块的权限
持续更新npm
npm -v
npm install -g npm
当 Node 的主版本 released 之后,你也可能需要重新构建 C++ 扩展:npm rebuild
如果你需要管理多个版本的node.js和npm,可以考虑使用n或者nvm(Linux, macOS)
定义默认的 npm init
npm init -y 表示你能接受 package.json 文件的一堆默认值
或者你可以设置一些语义化的默认值:
npm config set init.author.name
npm config set init.author.email
更精准的模块搜索
到目前为止,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。
管理你的模块
npm list (ls、la & ll 可以用作 list 的别名)
npm list –depth=0
npm home
npm repo
npm docs
npm bugs
npm prune npm list会显示和你已经安装地模块的关联模块—这些没有在 package.json文件中被引用。你可以单独 npm uninstall 每一个模块或者全部移除它们 (如果安装模块时你添加了 –production 标记或者 NODE_ENV 被设置成 production,package.json 文件中被指定为 devDependencies 的模块也会被移除。)
锁定依赖
默认情况下,当用 –save/-S 或者 –save-dev/-D 安装一个模块时,npm 通过脱字符(^)来限定所安装模块的主版本号。例如,当运行 npm update 时, ^1.5.1 允许安装版本号大于 1.5.1 但小于 2.0.0 版本的模块。
npm config set save-prefix=”“ 波浪号()字符是限定模块的次要版本。例如,当运行 npm update 时, 1.5.1 允许安装版本号大于 1.5.1但小于 1.6.0 版本的模块。可以将需要安装的模块版本前缀默认设置成波浪号()
npm config set save-exact true 对于那些偏执的认为任何更新(模块的行为)会破坏系统的人,可以配置npm仅安装精确版本号的模块:
npm shrinkwrap 另一个选择是,可以在项目中使用 shrinkwrap。 这会生成一个 shrinkwrap.json 文件,该文件包含了你正在使用的模块的指定版本。当运行 npm install时,该文件所指定的模块版本会覆盖 package.json 文件中所指定的版本。
找出过时的模块
怎么知道一个模块已经更新了呢?我之前的方式是先列举出项目所依赖的模块(npm list –depth=0),然后在 npmjs.com 上找到该模块,手动检查该模块的版本是否已经更新。这非常费时。幸运的是,有一个更简单的方式:
npm outdated (或者 npm outdated -g 来查找全局模块。)
npm list
npm view
使用开发中的模块
当你正在开发一个模块时,会经常想在其它项目中尝试使用或者在任何一个目录运行它(如果你的应用支持),这时没必要将其发布到 npm,并全局安装—仅需在该模块所在目录使用下面的命令:
npn link 该命令会为模块在全局目录下创建一个符号链接
npm list -g –depth=0 || npm outdated -g 可以通过下面的命令查看模块引用
现在,就可以从命令行运行模块或者通过 require 在任何项目中引入该模块。
另一个选择是,可以通过文件路径在 package.json 文件中声明对该模块的依赖:
“dependencies”: {
“myproject”: “file:../myproject/“
}