本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Node.js相关组件介绍,包括:package.json、NVM、NPM、PM2、Express、Vue.js、Webpack、Babel
package.json
- 作为一个描述文件,描述了你的项目依赖哪些包
- 允许我们使用 “语义化版本规则”(后面介绍)指明你项目依赖包的版本
- 让你的构建更好地与其他开发者分享,便于重复使用
指定依赖的包
- dependencies:在生产环境中需要用到的依赖
- devDependencies:在开发、测试环境中用到的依赖
语义化版本规则
- major:主要版本,表示有了一个不可以和上个版本兼容的大更改。
- minor:次要版本,表示有了增加了新的功能,并且可以向后兼容。
- patch:修订版本,表示修复了bug,并且可以向后兼容。
- 如果只打算接受补丁版本的更新(也就是最后一位的改变),就可以这么写:
- 1.0
- 1.0.x
- ~1.0.4
- 如果接受小版本的更新(第二位的改变),就可以这么写:
- 1
- 1.x
- ^1.0.4
- 如果可以接受大版本的更新(自然接受小版本和补丁版本的改变),就可以这么写:
- *
- x
NVM(Node Version Manager)
nodejs版本管理工具.nvm是一个可以让你在同一台机器上安装和切换不同版本node的工具
$ nvm ls-remote # 显示远程所有可以安装的nodejs版本
$ nvm ls-remote --lts # 查看长期支持的版本
$ nvm ls # 查看已经安装的版本
$ nvm current # 查看当前使用的node版本
$ nvm use [--silent] <version> # 使用已经安装的版本 切换版本
$ nvm install [-s] <version> # 安装指定的版本,如果不存在.nvmrc,就从指定的资源下载安装
$ nvm uninstall <version> # 卸载指定的版本
$ nvm install-latest-npm # 安装罪行的npm
$ nvm reinstall-packages <version> # 重新安装指定的版本
$ nvm cache dir # 显示nvm的cache
$ nvm cache clear # 清空nvm的cache
NPM (Node Package Manager)
NPM的全称是Node Package Manager,是一个包管理器,它让 JavaScript 开发者分享、复用代码更方便
# 创建package.json文件
$ npm init
# 更新npm -g 代表全局安装
$ npm install npm@latest -g
# 卸载全局 package
$ npm uninstall -g <package>
# 其他命令
$ npm -v
$ npm help install
$ npm config get registry
$ npm install -g webpack gulp --registry=http://registry.npm.taobao.org
$ npm install cnpm -g --registry=https://registry.npm.taobao.org
$ npm run
- 本地安装:如果你只是想在当前项目里用 require() 加载使用,那你可以安装到本地
- 全局安装:如果你想要在命令行里直接使用,比如 grunt CLI,就需要安装到全局了
npm install 默认会安装 package.json 中 dependencies 和 devDependencies 里的所有模块,如果想只安装 dependencies 中的内容,可以使用 --production 字段
# 参数
# -g:全局安装
# --save:将这个包名及对应的版本添加到package.json的dependencies
# --save -dev:将这个包名及对应的版本添加到package.json的devDependencies
# --production:只安装dependencies 中的内容
$ npm install <package-name>
CNPM
因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常
# 安装阿里云仓库地址
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm
PM2(Process Manager 2)
PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。
# 安装
$ npm install -g pm2
$ pm2 update
# 使用
$ pm2 start ecosystem.config.js # 启动
$ pm2 stop <app-name> # 停止
$ pm2 delete ecosystem.config.js # 删除
$ pm2 show <app-name> # 显示app详细信息
$ pm2 logs <app-name> [--lines 1000] # 显示日志
$ pm2 monit # CPU和Memory监控
$ pm2 list
Express
基于 Node.js 平台,快速、开放、极简的 web 开发框架。
# 安装
$ npm install express --save
#
$
# 创建一个命名为 myapp 的应用
$ express myapp
# 安装所有依赖包
$ cd myapp
$ npm install
# 启动应用
$ DEBUG=myapp npm start
express-generator(Express 应用生成器)
- 执行命令
$ npm install express-generator -g - 然后在浏览器中打开 http://localhost:3000/ 网址就可以看到这个应用了
- 通过 Express 应用生成器创建的应用一般都有如下目录结构:
.
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.jade
├── index.jade
└── layout.jade
7 directories, 9 files
Vue.js
JavaScript MVVM(Model-View-ViewModel)库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我们能够快速地上手并使用Vue.js。
Webpack
webpack是一个现代JavaScript应用程序的静态模块打包器(module bundler)。当webpack处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个bundle。
$ npm install webpack -g
Web前端模块化规范 AMD CMD UMD
- 规范 --> 实现与说明
- CommonJs --> Node.js采用这个规范
- AMD(Asynchronous Module Definition)--> RequireJS遵循AMD规范
- CMD(Common Module Definition) --> SeaJS
- UMD(Universal Module Definition) --> UMD是AMD和CommonJS的糅合
Babel
Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行
配置文件 .babelrc
{
"presets": [],
"plugins": []
}