乐趣区

关于node.js:NodeJs基础之NRM与NPM

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 的组成

  • 网站 https://www.npmjs.com/
  • 注册表(registry)
  • 命令行工具(CLI)

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

参考文档

  • https://www.cnblogs.com/benpaodexiaopangzi/p/5856642.html
退出移动版