zoukankan      html  css  js  c++  java
  • npm&node.js

    前言:【一】什么是node.js?( 参考网址https://blog.csdn.net/hu_zhiting/article/details/51450694)

                         node.js是JavaScript的运行环境。这句话怎么理解呢? js是一个脚本语言,需要一个解析器才能运行。对于我们前端开发写在html中的JavaScript,浏览器就充当着解析器的角色。 而需要独立运行的js,node.js就是一个解析器。即node.js可以让JavaScript运行在服务器端的开发平台,这使得JavaScript不再受限于前端网页的开发,也可以进行后端服务程序的开发。

                        每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了document等内置对象;那么,运行在node.js的JavaScript的用途是操作磁盘文件或搭建HTTP服务器,Node.js就相应提供了fn和http等内置对象。

             【二】为什么要使用NodeJS 

                       1. node.js基于JavaScript语言,不需要再学习一门新的语言。JavaScript语言在Web前端开发中至关重要,所以,前后台统一语言,可以实现程序员全栈开发,统一公共类库,代码标准化。【node.js也是用JavaScript编写的;至于浏览器用什么编写的,不清楚,以后有机会再了解吧】

                      2. NodeJS选择了目前最快的浏览器内核V8作为执行引擎,保证了其性能和稳定性。
                      3. NodeJS开发高效,代码简单。异步编程是其另一特点,让其处理IO密集型应用有明显优势。
                      4. NodeJS的社区在壮大,不仅包的数量在快速增加,而且质量也明显好于其他语言。
                 

            【三】NodeJS的安装与配置

                      Node.js安装包及源码下载地址为:https://nodejs.org/en/download/
                      安装很简单,在此就不详细写出来步骤了。安装完成后,配置环境变量。输入node --version,即可检查NodeJS版本。

                       

           【五.NodeJS包管理工具】
                    NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
                               1. 允许用户从NPM服务器下载别人编写的三方包到本地使用。
                               2. 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
                               3. 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
                               我们可以通过输入 "npm -v" 来测试是否成功安装。
                               使用npm命令安装模块,npm安装NodeJS模块语法格式如下:
                               npm install <Module Name>
           【六.项目中的NodeJS】
                     其实,上面的知识都是自己在网上查资料获取到的。因为在项目中,组长最初就是让我们安装了一下NodeJS。再后来,也没有在代码里看到过具体的应用。自己知道是用了npm包管理,不管是pc端还是移动端,在第一次启动前或增加了新的包,我们需要执行npm install命令,从而会生成一个node_modules文件目录。之后敲代码,只需要执行npm run dev命令,算是起到一个监听的作用。

              总结:node.js是(用JavaScript开发的)JavaScript的一个运行环境,即解析器。其功能和浏览器一样,都是解析JavaScript文件。只不过写在HTML页面中的JavaScript用浏览器解析器;而独立的JavaScript文件,则使用node.js解析器解析JavaScript文件。

    什么是 npm(参考网址:https://zhuanlan.zhihu.com/p/24357770)

        网络上的npm教程主要都在讲如何怎么安装、配置和使用npm,却不告诉新人什么是npm?为什么要使用npm?今天我就来讲讲这个话题。

          前言:共享代码

          我们在开发中需要用到很多别人写的模块,比如我们想使用Jquery库,那么我们可以点击 jQuery 网站上提供的链接就可以下载 jQuery,放到自己的网站上使用,或者直接使用在线的(一般情况下都会下载下来使用);我们要使用BootStrap,就去 BootStrap 官网下载;我们要使用Underscore,就去Underscore官网下载等等......如果我们的项目中需要依赖很多的模块, 就需要去很多网站下载其对应的模块有些程序员就受不鸟了,一个拥有三大美德的程序员 Isaac Z. Schlueter (以下简称 Isaaz)给出一个解决方案:用一个工具把这些代码集中到一起来管理吧!

            这个工具就是他用 JavaScript (运行在 Node.js 上)写的 npm,全称是 Node Package Manager (运行在node.js上的资源包管理器:npm是用JavaScript写的单独的文件,需要一个解析器即运行环境,而node.js刚好就是JavaScript的解析器。因此,npm就是运行在node.js上的资源包管理器)。      

         具体步骤

           NPM 的思路大概是这样的:

           1. 买个服务器作为代码仓库(registry),在里面放所有需要被共享的代码

           2. 发邮件通知 jQuery、Bootstrap、Underscore 作者使用 npm publish 把代码提交到 registry 上,分别取名 jquery、bootstrap 和 underscore(注意大小写)

           3. 社区里的其他人如果想使用这些代码,就把 jquery、bootstrap 和 underscore 写到 package.json 里,然后运行 npm install ,npm 就会帮他们下载代码(或者需要哪些模块,在终端命令行中执行:npm install 模块名 例如:npm install vue,回车,npm就帮我们将vue模块下载下来)

           4. 下载完的代码出现在 node_modules 目录里,可以随意使用了。

           这些可以被使用的代码被叫做「包」(package),这就是 NPM 名字的由来:Node Package(包) Manager(管理器)。

       

        发展(npm和node.js的关系)

          Isaaz 通知 jQuery 作者 John Resig,他会答应吗?这事儿不一定啊,对不对?

          只有社区里的人都觉得 「npm 是个宝」的时候,John Resig 才会考虑使用 npm。

          那么 npm 是怎么火的呢?

          npm 的发展是跟 Node.js 的发展相辅相成的。

          Node.js 是由一个在德国工作的美国程序员 Ryan Dahl 写的。他写了 Node.js,但是 Node.js 缺少一个包管理器,而npm需要一个运行环境,于是他和 npm 的作者一拍即合、抱团取暖,最终 Node.js 内置了 npm

          后来的事情大家都知道,Node.js 火了。随着 Node.js 的火爆,大家开始用 npm 来共享 JS 代码了,于是 jQuery 作者也将 jQuery 发布到 npm 了。

    所以现在,你可以使用 npm install jquery 来下载 jQuery 代码。

          现在用 npm 来分享代码已经成了前端的标配。(这就是我们为什么下载npm,就是要下载node.js了,因为Node.js内置了npm。我们下载node.js就是为了下载npm,使用npm来下载我们所需要用到的、别人写的模块)。

          ps:require.js是对下载下来的模块引入html的管理 ,npm是下载这些模块。 

  • 相关阅读:
    Php扩展--protocolbuffers消息打包
    Php扩展--seasLog日志扩展安装
    PHP系统编程--03.PHP进程信号处理
    PHP系统编程--01.多进程与多线程
    PHP系统编程--02.PHP守护进程化
    linux shell 之if-------用if做判断
    Connection:Keep-alive
    Http报头Accept与Content-Type的区别
    json解析
    JSON-lib框架,转换JSON、XML不再困难
  • 原文地址:https://www.cnblogs.com/yyn120804/p/15165359.html
Copyright © 2011-2022 走看看