当我们安装完node之后,npm就会自动安装在node目录下,那么我们就可以使用了
1.通过命令行使用
首先,我们安装包的时候有两种方式,一种是本地安装,一种是全局安装
(1)本地安装
在本地安装的时候,会将下载的包存储在本地项目的node_modules目录下面,安装的命令为下面所示,这种安装命令不会将安装信息保存到package.json文件,下面以安装模块lodash为例进行安装演示:
npm install lodash
(2)全局安装
在全局安装中,一般为一些命令行工具包的安装,可以在命令行直接使用,那么就需要在命令行进行安装,比如对文件格式进行校验的jshint的安装,如下面代码:
npm install -g jshint
安装之后,就可以使用该命令进行对文件的校验了
而且能够进行安装位置的查看,我的安装位置时node下面的lib位置:
2.通过package.json文件使用
在学习了解了上面的安装方式之后,我们就可以进行对包的简单安装,那么,当我们有很多包安装时,我们就需要使用到package.json文件进行安装,首先来看看,package.json的基本格式:
{
"name": "react-basics-review",
"version": "1.0.0",
"description": "a practise of react study ",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/suwu150/react-basics-review.git"
},
"author": "jkwu",
"license": "ISC",
"bugs": {
"url": "https://github.com/suwu150/react-basics-review/issues"
},
"homepage": "https://github.com/suwu150/react-basics-review#readme",
"devDependencies": {
"babel-plugin-transform-object-rest-spread": "^6.23.0",
"babel-preset-es2015": "^6.24.1",
"react": "^15.6.1"
}
}
如上面格式的代码,每当我们安装一个本地的包的时候,就会在devDependencies或dependencies里边以对象的形式追加一项,其中
devDependencies: 在开发和测试环境中需要依赖的包
dependencies: 在生产环境中需要依赖的包
那么,package.json都有那些优点呢:
*以文档的形式规定了项目中所使用的依赖
*可以确定每个包所使用的版本
*项目的构建可重复,在多人协作中更加方便
创建package.json文件时,可以通过手动创建或者使用命令npm init进行创建,在package.json文件中必须包涵有"name","version"两个字段
这样的话,我们就可以进行包依赖的管理了,即可已通过手动在package.json中添加包的版本和名称,也可以使用命令行进行添加,在这里手动添加的就不说了,如果要添加到devDependencies,可以通过npm install 的--save-dev,如果要安装到dependencies,则可以使用-save命令
如下面代码:
npm i lodash --save-dev
npm i lodash --save
安装之后的结果如下所示:
"devDependencies": {
"babel-plugin-transform-object-rest-spread": "^6.23.0",
"babel-preset-es2015": "^6.24.1",
"lodash": "^4.17.4",
"react": "^15.6.1"
},
"dependencies": {
"lodash": "^4.17.4"
}
这样,当别人也需要使用这个项目的时候,就可以简单执行npm install 命令进行对所需的依赖进行下载安装
3. 包与模块的发布
如果要想将包上传到npm服务器,来供其他人下载使用,我们只需进行简单的操作即可,需要在项目中创建一个符合CommonJS文件规范的文件就可以,然后在npm官网进行注册帐号,通过命令 npm publish命令上传到注册的帐号即可
应该注意的是,当我们使用淘宝进行的时候,可能上传时会出现问题,所以将淘宝镜像删除之后在操作,因为npm会将数据写入到.npmrc里边,使用淘宝镜像时会出现问题.
具体操作如下面链接所示:npm包的发布