Node包管理NPM(二)

双子孤狼 2017-12-05 15:50:41 ⋅ 660 阅读

NPM是什么?


[NPM官网](https://docs.npmjs.com/)给出解释如下:


```

Use npm to install, share, and distribute code; manage

dependencies in your projects; and share & receive feedback with 

others.


```


其实说白了,就是字面意思---包管理工具,可以分享/重复利用/管理模块代码;它将某个独立的功能封装起来,用于发布、更新、依赖管理和版本控制. 



NPM与包之间的关系






Node组织了自身的核心模块, 同时也使得第三方文件模块可以有序的编写和使用,在第三方的模块中, 模块与模块之间是散列的不可以直接引用, 在模块之外, 包和NPM就可以将模块联系起来的一种机制。

 上面的图配上边的话, 解释的非常清楚, 但是得细细品味一下;

 

安装依赖包


[Express](http://www.expressjs.com.cn/) 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。

为何先要引出这个Express?

1. 它是一个流行的node.js的框架<依赖包>;

2. Node.js官方推荐;

3. 为了演示如何安装依赖包<框架>;


[十个最适合 Web 和 APP 开发的 NodeJS 框架](http://web.jobbole.com/84607/)


第一 简洁的语法

一行代码搞定`npm install express`. 它究竟做了什么?

首先从[NPM官网](http://npmjs.org/)进行查找别人上传的代码.然后下载;


当然下载的位置还分为了**本地模式**和**全局模式**;


1 本地模式

语法---`npm install express`

安装位置---`~/ node_modules `

默认情况下我们使用 `npm install`命令就是采用`本地模式`. 即把包安装到`当前目录的 node_modules 子目录下`<~/ node_modules >。

Node.js 直接使用require('express');即可引入该包。


2 全局模式

语法---`npm install -g express`

那么为何已经可以用了, 还要用全局模式呢?


全局模式其实将包安装到一个全局可以使用的位置, 为了`减少多重副本而使用全局模式`,而是因为本地模式`不会添加PATH 环境变量`。bin 目录没有包含在 PATH 环境变量中,不可以直接使用;


步骤与实例


第一步下载express


```

$ npm install -g express


```


第二步 配置使用, 创建一个简单的服务器app.js


```

var express = require(‘express’); 

var app = express(); 

app.get(‘/’, function (req, res) {

 res.send(‘Hello World!’);

 }); 

app.listen(3000, function () { 

console.log(‘Example app listening on port 3000!’);

 });


```


第三步 终端中执行`node app.js`


第四步 打开浏览器, 输入[http://127.0.0.1:3000/](http://127.0.0.1:3000/), 如下图所示


#### 小技巧

如果你有 PHP 开发经验,更改代码后直接刷新浏览器查看结果,但是运行node.js时, 却不好用, **必须重启。怎么办呢?**


第一 产生的原因

Node.js 只有在第一次引用到某部分时才去解析该文件,以后都会直接接访问内存,避免重复载入,而 PHP 则是重新读取并解析脚本(如果没有专门的优化配置)。

第二 优缺点

Node.js的这种设计有利于提高性能,却不利于开发调试;

第三 解决方法

使用supervisor来解决; 步骤


```

#下载supervisor

$ sudo npm install -g supervisor

#如果没有执行过node命令, 建议先执行

$ node hello.js

#然后再执行如下命令, 之后更改hello.js代码后直接刷新浏览器即可.

$ supervisor hello.js

```


还可以用一下hotnode pm2, 

后续会给大家详解一下pm2的高大上用法



Node版本区别:


从对ES6的支持来简单的区分是

```

0.x 完全不支持ES6

4.x 部分支持ES6特性,并处在LTS阶段

5.x 部分支持ES6特性(比4.x多些),属于过渡产品,现在来说应该没有什么理由去用这个了

6.x 支持98%的ES6特性


```


程序猿还是有情怀的,你瞧! 这不:

  • Merry Christmas





全部评论: 0

    我有话说:

    nvm常见配置问题

      本文涉及使用nvm时候 常见的三个问题 zsh: command not found: npm curl: (7) Failed to connect to raw

    Building an NPM TS package

      劳而不伐,有功而不德,厚之至也。(《周易·系辞上》) 原文链接--Step by step: Building and publishing an NPM Typescript

    Node模块之Events模块(五)

    Node模块之Events模块(五)

    Nodejs视频服务器 切片ffmpeg

    Node 视频服务器 切片ffmpeg

    Node实战篇:Express--jade模板引擎(七)

    Jade(Pug) — Node Template Engine,一个高性能的模板引擎,专为 Node 而做......

    Node.js 实战篇--微信支付系列(

    接上一篇首先我们看一下整体上微信小程序的开发流程图

    分享一个标星42.4k 的商城管理后台项目模板

    项目简介 mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品

    Node模块之fs模块(六)

    屏幕快照 2017-08-08 上午10.53.21.png 第一部分 概述 Node.js 提供一组类似UNIX(POSIX)标准的文件操作API,Node.js中操作文件的模块是fs(File

    Node实战篇:Nodejs 链接 Mariadb 实例

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL

    Node实战篇:Express路由(三)

    Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。

    2018年8个技巧来构建更好的Node.js应用程序

    2018年8个技巧来构建更好的Node.js应用程序

    Node 模块之 util URL queryString path(八)

    第一部分 util util是一个Node.js核心模块,util模块设计的主要目的是为了满足Node内部API的需求。其中包括:格式化字符串、对象的序列化、实现对象继承等常用方法。要使用util

    推荐一款前端数据源管理工具 algeb

    ALGEB 简介 这是一个比较抽象的库,一开始可能比较难理解。我写它的初衷,是创建可响应的数据请求管理。在传统数据请求中,我们只是把携带ajax代码的一堆函数放在一起,这样就可以调用接口。但是这种

    Node异步式I/O和异步式编程(三)

     Node.js 最大的特点就是异步式 I/O(或者非阻塞I/O)与事件紧密结合的编程模式。 第一部分: I/O 1.阻塞I/O与非阻塞I/O概念 1.1阻塞I/O(同步I/O) 线程在

    【开源资讯】phpMyAdmin 4.9.7 和 5.0.4 发布,可视化 MySQL 管理后台

    phpMyAdmin 4.9.7 和 5.0.4 发布了。phpMyAdmin 是一个非常受欢迎的 web MySQL 数据库管理工具。它能够创建和删除数据库,创建/删除/修改表格,删除/编辑/新增

    为什么要使用 Node.js?这几点你必须知道!

    经过这几年的发展,前端普遍进入了技术深水区,只会Web页面开发已经难以满足企业的需求,Node逐渐成为了刚性技能。 但Node在业务上的使用还没有那么普及,有的时候想用老板还不同意,本文将从4个角度

    NodeJS 10.5.0 中的线程:实用介绍

    几天前,Node.js版本10.5.0发布,其中包含的主要功能之一是添加了线程支持。

    Nodejs 接入 公众号【逗比版】

    Nodejs 接入 公众号 需求:Boss: 我们要接入公众号,你看下文档对接下。Me: 🆗 然后,可能因为对腾讯的反感,加之网上对腾讯的吐槽,怀着愤世嫉俗的态度胡乱的找资源,看方案

    Node模块(四)

    模块化分工、各司其职