头图

nrm

nrm can help you easy and fast switch between different npm registries, now include: npm, cnpm, taobao, nj(nodejitsu).

译文:nrm可以帮助您在不同的npm注册表之间轻松快速地切换,现在包括:npm、cnpm、taobao、nj(nodejitsu)。

github地址:https://github.com/Pana/nrm

更多精彩内容,请微信搜索“前端爱好者戳我 查看

NRM 安装

NRM 常用命令

Nodejs 案例 -- 创建一个本地服务器

var http = require('http');
 
var app = http.createServer((req, res) => {
 
    res.write('hello world!');
 
    res.end()
})
 
app.listen(3000,()=>{
    console.log('服务器已启动')
})

NPM

NPM 是JavaScript 的包管理工具,是 Nodejs 平台的默认包管理工具也是世界上最大的软件注册表,里面包含了 60 万个包结构。

NPM 的组成

NRM 常用命令

  1. npm -v:查看npm版本。
  2. npm init:初始化后会出现一个package.json配置文件。可以在后面加上-y ,快速跳过问答式界面。
  3. npm install:会根据项目中的package.json文件自动下载项目所需的全部依赖。
  4. npm install 包名 --save-dev(npm install 包名
    -D):安装的包只用于开发环境,不用于生产环境,会出现在package.json文件中的devDependencies属性中。
  5. npm install 包名 --save(npm install 包名
    -S):安装的包需要发布到生产环境的,会出现在package.json文件中的dependencies属性中。
  6. npm list:查看当前目录下已安装的node包。
  7. npm list -g:查看全局已经安装过的node包。
  8. npm --help:查看npm帮助命令。
  9. npm update 包名:更新指定包。
  10. npm uninstall 包名:卸载指定包。
  11. npm config list:查看配置信息。
  12. npm 指定命令 --help:查看指定命令的帮助。
  13. npm info 指定包名:查看远程npm上指定包的所有版本信息。
  14. npm config set registry https://registry.npm.taobao.org
    修改包下载源,此例修改为了淘宝镜像。
  15. npm root:查看当前包的安装路径。
  16. npm root -g:查看全局的包的安装路径。
  17. npm ls 包名:查看本地安装的指定包及版本信息,没有显示empty。
  18. npm ls 包名 -g:查看全局安装的指定包及版本信息,没有显示empty。

初始化 -- package.json

{
  "name": "demo", // 项目名称
  "version": "1.0.0", // version是版本(遵守"大版本.次要版本.小版本"的格式)
  "description": "", // description描述你的模块,或者搜索
  "main": "index.js", // main字段指定了加载的入口文件
  "scripts": { // scripts指定了运行脚本命令的npm命令行缩写,比比如start指定了运行npm run start时,所要执行的命令。
    "test": "echo hello world"
  },
  "repository": { //repository(仓库)指定一个代码存放地址
    "type": "git",
    "url": "git+https://github.com/XXXX"
  },
  "keywords": [],
  "author": "", // 作者
  "keywords": [  // 一个字符串数组,方便别人搜索到本模块
  "vue","iview"
  ],
  "license": "ISC", 
  "devDependencies": {  // devDependencies指定项目开发所需要的模块
    "babel-core": "^6.23.1", 
    "webpack": "^1.13.2"
  }, 
  "dependencies": {  // dependencies字段指定了项目运行所依赖的模块
    "underscore": "^1.8.3",
    "vue": "^2.1.4"
  }
}

NPM 的热部署

热部署,不用每次进行部署,实现动态调试。

在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止Node.js 再重新运行才会奏效。

这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入。

Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。

这时若你修改了js文件,或是调试功能,或是增加功能。

这时需要重新发布该服务,每次修改都需要执行以下两步:

  • control+c
  • node server.js

很不爽!因此有人开发了一个自动发布(热发布)的工具,你只需要在修改文件后保存,它就能自动替你发布,这就是所谓的热部署。

就像tomcat或websphere等一些主流的web应用服务器那样保存即热部署。

热部署的包很多,有supervisor,hotnode,nodemon等。

nodemon

nodemon 是一种工具,可在检测到目录中的文件更改时通过自动重新启动节点应用程序来帮助开发基于 node.js 的应用程序。

官网地址https://nodemon.io/

nodemon 特性

  • 自动重新启动应用程序。
  • 检测要监视的默认文件扩展名。
  • 默认支持 node,但易于运行任何可执行文件,如 python、ruby、make 等。
  • 忽略特定的文件或目录。
  • 监视特定目录。
  • 使用服务器应用程序或一次性运行实用程序和 REPL。
  • 可通过 Node require 语句编写脚本。
  • 开源,在 github 上可用。

安装

全局安装

$ npm i -g nodemon

本地安装

$ npm i -D nodemon

注意:本地安装需要在 package.json 文件的 script 脚本中指定要需要执行的命令

{
  "script": {
    "dev": "nodemon app.js"
  }
}

使用 npm dev 运行

使用

nodemon 一般只在开发时使用,它最大的长处在于 watch 功能,一旦文件发生变化,就自动重启进程。

# 默认监视当前目录的文件变化
$ nodemon app.js

# 指定主机和端口作为参数,表示在本地 3697 端口启动 node 服务 
$ nodemon app.js localhost 3697

更多详细内容,请查看:https://github.com/remy/nodemon

参考文档

前端爱好者


前端老兵
15 声望1 粉丝

你们说这是哪里?