NPM知识点
学习ReactNative,肯定要用到NPM的一些命令,在此整理一下我在使用过程中用到的NPM的知识点和命令。
npm概念
npm(中文你怕吗)全程Node Package Manager,是管理node包的。是Node.js默认的以JavaScript编写的软件管理系统。
joke.png
npm安装
npm的安装会随着Node.js的安装一并安装,虽然Node.js官网提供安装包可以直接安装,但是使用命令行显得更高端一些哈(虽然可能会出错O(∩_∩)O~)。
1、Windows
Windows上的包管理器可以用Chocolatey。安装Chocolatey的命令如下:
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
然后安装Node
choco install python2
使用Chocolatey来安装软件的时候,可能需要以管理员的身份来运行命令提示符窗口。同时chocolatey的网站需要翻墙。没有梯子的话到nodejs的官网上下载安装包静静的安装吧。
node官网
2、Mac
使用Mac的包管理器Homebrew来进行安装。Homebrew的安装命令如下:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
在安装Homebrew时/usr/local
需要权限的问题,可使用下面命令:
sudo chown -R `whoami` /usr/local
安装Node
brew install node
同时官网也可以下载安装
node官网
Node.js安装会默认安装在/usr/local/bin/node
文件夹下
npm安装会默认安装在/usr/local/bin/npm
文件夹下
备注:Facebook出了一个叫做yarn的来替代npm,据说可以加速node模板的下载(官方说法是:Yarn 会缓存它下载的每个包,所以不需要重复下载。它还能并行化操作以最大化资源利用率,所以安装速度之快前所未有。
),安装方法如下:
npm install -g yarn react-native-cli
其使用方法和npm相似,用到npm的命令的地方把npm改为yarn即可(当然也有一些区别,具体自行google)
npm设置
默认的npm仓库地址是:https://registry.npmjs.org
,但是因为墙的原因,所以国内使用的时候需要更改镜像地址:
淘宝的镜像地址:
https://registry.npm.taobao.org
国内的镜像地址:
https://registry.cnpmjs.org
更改镜像地址的方法(以淘宝为例):
npm config set registry https://registry.npm.taobao.org --global
设置node源码的源:
npm config set disturl https://npm.taobao.org/dist --global
设置proxy的命令:
npm set proxy http://proxy.example.com:8080 --global
后面的global是设置全局镜像。
查看镜像以及代理的地址命令:
npm config get registry -g
npm config get disturl -g
npm config get proxy -g
后面加上-g查询全局的,不加查看当前用户。
设置完成后,会保存在系统文件,使用npm config ls
可以查看所有配置文件地址以及内容。然后可以直接在其文件中直接修改。
备注:
1、淘宝的镜像据说和官方镜像会保持15分钟一次的同步频率。
2、国内的镜像个人感觉不是很全,目前不清楚同步频率。
npm常用命令
1、安装package
npm install <pkg> 或者 npm install <pkg>@<version>
安装某一个package或者具体指定版本的package。在某一个项目中,我们在package.json
中定义好需要的依赖包,直接在其目录下执行npm install
批量安装。
install的命令信息如下:
$ npm install -help
npm install (with no args, in package dir)
npm install [<@scope>/]<pkg>
npm install [<@scope>/]<pkg>@<tag>
npm install [<@scope>/]<pkg>@<version>
npm install [<@scope>/]<pkg>@<version range>
npm install <folder>
npm install <tarball file>
npm install <tarball url>
npm install <git:// url>
npm install <github username>/<github project>
安装分为全局和本地安装,两者区别如下:
本地安装:package会被下载到当前所在目录,也只能在当前目录下使用。
全局安装:package会被下载到到特定的系统目录下,安装的package能够在所有目录下使用
2、查看具体某一个package信息
npm ls <pkg>
命令结果如下:
$ npm ls react-native
XXX@1.1.0 /Users/XX/workspace/react-native-XXX
└── react-native@0.43.4
如果要查看某一个pkg具体的信息,可以使用
npm info <pkg>
3、查看远程某一个package版本信息
以react_native_countdowntimer
为例:
$ npm view react_native_countdowntimer versions
[ '1.0.1', '1.0.2', '1.0.3', '1.0.4', '1.0.5' ]
这样可以具体针对某一个版本进行安装。
4、查看当前项目安装了那些package
$ npm ls
/private/tmp/npm
└─┬ grunt-cli@0.1.9
├─┬ findup-sync@0.1.2
│ ├─┬ glob@3.1.21
│ │ ├── graceful-fs@1.2.3
│ │ ├── inherits@1.0.0
│ │ └─┬ minimatch@0.2.12
│ │ ├── lru-cache@2.3.0
│ │ └── sigmund@1.0.0
│ └── lodash@1.0.1
├─┬ nopt@1.0.10
│ └── abbrev@1.0.4
└── resolve@0.3.1
5、更新某一个pkg版本
npm update <pkg>@<version>
6、卸载pkg
npm uninstall <pkg> 或者 npm uninstall <name>@[<version>]
7、清理缓存
npm cache clean
8、发布pkg
首先需要登录:
npm adduser
会提示输入用户名、密码和邮箱。
然后进行发布
npm publish
pkg版本
每一个package都有一个package.json
的文件,来声明pkg名字、版本、依赖内容,其主要字段意义如下:
- name: pkg的名字,不可包含non-url-safe的字母,而且仓库地址中每一个pkg名称唯一。
- version: pkg的版本,当pkg发生变化时,version也应该跟着一起变化,格式要符合semver规则。
- dependencies: pkg的应用依赖模块。应用依赖模块会安装到当前模块的node_modules目录下。
- devDependencies:pkg的开发依赖模块。
pkg的版本书写时有以下意义:
^4.3.1 等价于 >=4.3.1 < 4.4.0
^4.3 等价于 >=4.3.0 < 4.4.0
4.3.X 等价于 >=4.3.0 < 4.4.0
4.3 等价于 4.3.X
如果后面是-
连接,代表是构建版本,如4.3.1-3,它比4.3.1大。
如果数字后面不是连字符,比如4.3beta
代表是pre release版本,是小于4.3版本的。所以:
4.3.1-3 > 4.3.1-3-beta > 4.3.1-2 > 4.3.1 > 4.3.1beta
备注
npm help 可以查看所有的命令以及参数