简介:
npm是Node官方提供/默认的包管理工具,用于Node包的发布、传播、依赖控制。
npm提供了命令行工具,使你可以方便地下载、安装、升级、删除包,也可以让你作为开发者发布并维护包
帮助文档:https://docs.npmjs.com/
集成工具:webstorm
工具安装:
nodejs下载:http://nodejs.cn/download
# 安装nodejs会默认安装npm
验证:
node -v
npm -v
仓库地址:
官方仓库视图:https://www.npmjs.com/
官方仓库地址:https://registry.npmjs.org/
仓库地址直接访问返回json数据
命令帮助:
npm -h
npm -l
npm help cache # 网页模式
初始化:
npm init -y #生成package.json配置文件
查看环境变量:
npm config ls [-l]
设置环境变量:
npm config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass
npm config set @myco:registry http://reg.example.com
npm config get registry
查找某个包所有版本:
npm view gl versions
下载最新版:
npm install jquery
下载指定版:
npm install #下载package.json中的依赖
npm install jquery@1.1.1 #记录到配置文件的dependencies字段
npm install -save[-dev] pkg #记录到配置文件的devDependencies字段
#根目录下的node_modules目录
更新版本
npm update pkg
查看安装路径:
npm root [-g]
查看包元数据:
npm info jquery
npm docs jquery
列出所有下载的版本
npm list [-g]/[pkg]
卸载:
npm uninstall
缓存:
npm config get cache
npm cache clear --force
编译打包:
npm pack
npm run test
发布:
npm publish
npm unpublish
版本自动升级:
npm version opt
// 这里opt 的取值如下,跟语义化版本是对应的。patch/minor/major可以自增第3/2/1位(+1)
patch, minor, major, prepatch, preminor, premajor, prerelease
会回写到下面文件中package.json, package-lock.json, and, if present, npm-shrinkwrap.json
npm 包采用semantic-versioning规范管理版本,三位版本2.x.x,bugFix类更改最后一位,feature类更改第二位,都不打破向下兼容性,打破向下兼容性的更改第一位。~1.5.2 代表1.5.[2~99];^1.5.1代表1.[5-99].[0-99](>=1.5.1)
废弃包的某个版本npm deprecate <package-name>@<version> "<message>";撤销废弃,把废弃信息为空即可
使用 npm publish --tag <tag> 发布带有标签的版本,使用npm dist-tag add example-package@1.4.0 stable 给指定版本带上标签
导入包:request/import
模块:一个文件
包:含配置文件的整体
配置文件:
.npmrc #上传下载配置
package.json #json包配置文件
package-lock.json #json锁文件,默认产生,但是不会被发布(即便在files字段指定)
npm-shrinkwrap.json #json锁文件,npm shrinkwrap产生,默认会被发布
package.json文件
private: "" # 如果设置为true,则不允许发布
name: ""
version: "" # name和version是package.json中最重要的两个字段,也是发布到NPM平台上的唯一标识
scripts: {} # 运行命令
// npm run <script-name>会先后运行pre<script-name>、<script-name>、post<script-name>
// npm有些内置的特殊指令会在固定时间自动执行,如:prepare在install前执行、prepublishOnly会在npm publish前执行
{ "dependencies" :
{ "foo" : "1.0.0 - 2.9999.9999"
, "bar" : ">=1.0.2 <2.1.2"
, "baz" : ">1.0.2 <=2.3.4"
, "boo" : "2.0.1"
, "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
, "asd" : "http://asdf.com/asdf.tar.gz"
, "til" : "~1.2"
, "elf" : "~1.2.3"
, "two" : "2.x"
, "thr" : "3.3.x"
}
}
main: "" #程序入口,默认是index.js
files:[] # 列表,指定只发布哪些文件到仓库(与.npmignore和.gitignore相反)
bin:{} # 通过设置这个字段可以将它们包含到系统的PATH中
keywords:[] #列表,会显示在npm search的结果
config # 定义一些环境变量值,可被npm scripts以npm_package_config_var-name的形式引用
engines : { "node" : ">=0.10.3 <0.12" } #指定工具或系统版本
npm5.0和yarn
yarn:
安装方式:npm install -g yarn
官网:https://yarnpkg.com/