npm的基本使用

记录一下npm常用的使用命令,方便快速查阅。

本地包安装

安装

如果需要在项目里通过require()的方式引入包,则需要本地安装依赖。

npm install <package_name>

下载的依赖包会出现在项目根目录下的node_modules文件夹下。

如果package.json里有依赖包的依赖记录,install子命令会下载符合semver规则的最新版本,否则install会下载依赖包的最新latest版本。

依赖在安装时同步到package.json,下次直接使用npm install就能安装对应的依赖了。

其中,使用--save-S同步项目依赖到dependencies

npm install <package_name> --save

使用--save-dev-D同步开发依赖到devDependencies

更新

可以不定时查看依赖包是否过期。

npm outdated

进行依赖更新。

npm update

卸载

卸载不需要的依赖包。

npm uninstall <package_name>

同步删除package.json中的配置。

npm uninstall <package_name> --save

删除开发依赖使用--save-dev

全局安装包

安装

如果想要在命令行中使用包(比如grunt等打包用的包),可以进行全局安装。

npm install -g <package_name>

更新

查看需要更新的包。

npm outdated -g --depth=0

更新全局包。

npm update -g

更新npm.

npm install npm@latest -g

卸载

npm uninstall -g <package_name>

如果反馈EACCES error,参考:How to Prevent Permissions Errors

创建包

初始化

初始化包,并根据回答提示生成package.json。

npm init

也可以直接生成默认版本:

npm init -yes 

配置package.json

package.json放在项目的根目录下,用来记录包的一些基本信息以及管理依赖包。

{
  "name": "my-awesome-package",
  "version": "1.0.0"
}

如上所说,package.json可以在npm init时,根据提示生成。如果想要自定义回答提示,可以修改~/npm-init.js

module.exports = {
  customField: 'Custom Field',
  otherCustomField: 'This field is really cool'
}

更复杂的自定义尝试使用 init-package-json

发布前

发布包前,最好能了解一下npm的包策略

发布包需要登陆账号,如果没有,可以先创建。

npm adduser

访问网站来验证注册是否成功:https://npmjs.com/~username

有了账号,就可以登陆了。

npm login

验证登陆的账号是否符合预期。

npm whoami

.gitignore.npmignore中的文件将不会被发布。

项目根目录下最好能有readme.md,用来描述项目及使用方法。

发布

发布项目。

npm publish

访问:https://npmjs.com/package/<package>,会发现包的readme.md信息被展示,那么包就成功发布了!

更新

包被修改后,可以进行更新发布。

发布前,需要先迭代版本。

npm version <update_type>

其中,<update_type>majorminorpatch值之一。

命令会更新package.json中的version字段值。

版本详情查看:semantic versioning

更新版本号后,就可以发布了。

npm publish

通过访问https://npmjs.com/package/<package>会发现包版本被更新了。

如果只更新readme.md也需要更新版本并发布。

常用命令

更多命令参考:npm doc

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容

  • npm是什么 NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具...
    build1024阅读 7,844评论 0 9
  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey阅读 6,245评论 2 36
  • 大家好,我是IT修真院深圳分院第3期的学员,一枚正直纯洁善良的前端程序员,今天给大家分享一下,修真院官网前端工程师...
    大大头大阅读 2,932评论 0 1
  • 1、npm是什么? NPM (node package manager),通常称为node包管理器。顾名思义,它的...
    徐国军_plus阅读 7,042评论 1 6
  • 家里从外地来了亲戚,我们一起聚到住在繁华地段的二哥家,又一起到对面红小巷口的鱼火锅去吃饭,夏天虽然很热,偏好火锅的...
    林夕枫起阅读 346评论 0 0