1. 理论部分
1.1 Node.js简介
- Node.js是运行在服务端的JavaScript
- Node.js是基于Chrome JavaScript运行时建立的一个平台
- Node.js是事件驱动I/O服务端JavaScript环境,基于Google的V8引擎
注:V8引擎执行Javascript的速度非常快,性能非常好
1.2 npm的概念
NPM是JavaScript开发人员可以轻松共享和重用代码,并且可以更轻松更新你所共享的代码。
1.3 npm包的分类
1.3.1 全局安装与全局npm包
- 通过“npm install -g <package_name>”命令生成
- 在任一目录下通过require函数传递npm包的绝对路径引用
- 无法通过npm包名称直接引用
1.3.2 本地安装与本地npm包
- 项目文件夹内通过“npm install <package_name>”命令生成
- 项目文件夹内可直接通过require函数传递本地npm包名称引用
- 本地安装的项目文件夹支持自定义(如,/var/www/project1)
2 使用方法
2.1 配置Node.js环境
2.1.1 配置Node.js的源
1
|
yum
install
-y http:
//rpm
.nodesource.com
/pub_8
.x
/el/7/x86_64/nodesource-release-el7-1
.noarch.rpm
|
2.1.2 安装Node.js
1
|
yum
install
-y nodejs-8.1.3
|
2.1.3 校验安装
2.1.3.1 校验Node.js
1
|
node -
v
|
显示如下:
1
|
v8.1.3
|
2.1.3.2 校验npm
1
|
npm -
v
|
显示如下:
1
|
5.0.3
|
2.1.4 创建npm管理用户
1
2
|
useradd
npm
su
- npm
|
注:如无特殊说明第2章节往下代码都使用npm用户身份执行,而非root
2.1.5 配置全局npm目录
2.1.3.1 查找npm默认路径
1
|
npm config get prefix
|
显示如下:
1
|
/usr
|
2.1.3.2 新建npm全局目录
1
|
mkdir
~/.npm-global
|
2.1.3.3 新建npm全局目录
1
|
npm config
set
prefix
'~/.npm-global'
|
2.1.3.4 配置npm环境变量
1
2
|
echo
'export PATH=~/.npm-global/bin:$PATH'
>> ~/.bash_profile
source
~/.bash_profile
|
2.1.3.5 测试配置
1
|
npm
install
-g jshint
|
2.2 Node.js软件包的配置
2.2.1 查看已安装的包
2.2.1.1 本地包操作1
1
|
npm
ls
|
2.2.1.2 本地包操作2
1
|
npm
ls
--depth 0
|
2.2.1.3 全局包操作1
1
|
npm
ls
-g
|
2.2.1.2 全局包操作2
1
|
npm
ls
-g --depth 0
|
2.2.2 安装软件包
2.2.2.1 本地包操作
1
|
npm
install
<package_name>
|
2.2.2.2 全局包操作
1
|
npm
install
-g <package_name>
|
2.2.3 安装并保存依赖关系
2.2.3.1 本地包操作
1
|
npm
install
<package_name> --save
|
注:存在“package-lock.json”文件中
2.2.3.2 全局包操作
1
|
npm
install
-g <package_name> --save
|
注:存在“package-lock.json”文件中
2.2.5 安装并保存开发依赖关系
2.2.5.1 本地包操作
1
|
npm
install
<package_name> --save-dev
|
注:存在“package-lock.json”文件中
2.2.5.2 本地包操作
1
|
npm
install
-g <package_name> --save-dev
|
注:存在“package-lock.json”文件中
2.2.6 查看废弃的包
2.2.6.1 本地包操作
1
|
npm outdated
|
2.2.6.2 全局包操作
1
|
npm outdated -g --depth=0
|
2.2.7 更新的软件包
2.2.7.1 本地包操作
1
|
npm update <package_name>
|
2.2.7.2 全局包操作
1
|
npm update -g <package_name>
|
2.2.8 卸载软件包
2.2.8.1 本地包操作
1
|
npm uninstall <package_name>
|
2.2.8.2 全局包操作
1
|
npm uninstall -g <package_name>
|
2.2.9 卸载软件包并保存依赖关系
2.2.7.1 本地包操作
1
|
npm update --save <package_name>
|
2.2.7.2 全局包操作
1
|
npm update -g --save <package_name>
|
2.3 使用package.json
2.3.1 package.json的作用
- 声明项目所需的依赖包
- 通过语义版本控制规则声明项目所需包的版本
- 是项目更冗余重复构建和共享
2.3.2 package.json的书写要求
- name
-- 全部小写
-- 单词间不允许使用空格
-- 可使用破折号与下划线
- version
-- 格式“x.x.x”
-- 遵守semver规范
范例如下:
1
2
3
4
|
{
“name”:“my-awesome-package”,
“version”:“1.0.0”
}
|
2.3.3 创建默认的package.json文件
1
|
npm init -y
|
验证创建
1
|
cat
/home/npm/package
.json
|
显示如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
{
"name"
:
"npm"
,
"version"
:
"1.0.0"
,
"description"
:
""
,
"main"
:
"index.js"
,
"scripts"
: {
"test"
:
"echo \"Error: no test specified\" && exit 1"
},
"keywords"
: [],
"author"
:
""
,
"license"
:
"ISC"
}
|
=====================================
npm参考:
----------
https://www.npmjs.com/package/cnpm
nodejs参考:
------------