怎么理解Node.js中的包与NPM

发布时间:2021-11-01 10:06:16 作者:iii
来源:亿速云 阅读:150

这篇文章主要介绍“怎么理解Node.js中的包与NPM”,在日常操作中,相信很多人在怎么理解Node.js中的包与NPM问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解Node.js中的包与NPM”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

怎么理解Node.js中的包与NPM

摘要:包与NPM Node组织了自身的核心模块,也使得第三方文件模块可以有序的编写和使用。

包与NPM

Node组织了自身的核心模块,也使得第三方文件模块可以有序的编写和使用。

但是在第三方模块中,模块与模块之间仍然是散列在各地的,相互之间不能直接引用

所以在模块外,包和NPM是将模块联系起来的机制。

怎么理解Node.js中的包与NPM

CommonJS 的包规范定义其实也很简单,由包结构和包描述文件两部分组成。

包结构

用于组织包中的各种文件,是一个存档文件,即一个目录直接打包为.zip或tar.gz格式的文件。

符合规范的包目录:

package.json包描述文件

NPM所有行为都与包描述文件的字段息息相关

一些字段:

格式:

"maintainers":[{ "name":"kongchengji", "email":"111@.com", "web":"[http:](https://blog.csdn.net/qq_36171287)" }]

格式:

 "licenses":[{ "type": "GPLv2", "url":"" }]
 // 或者
 "license": "ISC"

格式:

"repository": {
"type": "git",
"url": "git+https://github.com/kongchengji/UiSelfMade.git"
},

格式:

"scripts": {
        "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
        "start": "npm run dev",
        "lint": "eslint --ext .js,.vue src",
        "build": "node build/build.js"
    },

NPM与包规范区别在于多了四个字段:

devDependencies:开发环境使用dependencies:生产环境使用

前后端共用模块

JavaScript在Node出现后,有一项优势 --> 一些模块可以在前后端实现共用。

但是前后端上始终还是有一些差别的 :sweat_drops:

前后端模块侧重点

前后端JavaScript分别搁置在HTPP的两端,扮演的角色并不同。

浏览器端的JavaScript需要经历从同一个服务器端分发到多个客户端执行,瓶颈是带宽,从网络加载代码服务器端的JavaScript是相同代码需要多次执行,瓶颈是CPU和内存等资源,从磁盘中加载

在前端JavaScript中,主要还是应用AMD规范

CommonJS并不完全适用于前端JavaScript,比如Node的模块引入基本是同步的,但是前端引入如果使用同步引入,UI在初始化过程中需要花费很多时间等待脚本加载完成。

AMD规范

AMD规范是CommonJS规范的一个延伸,全称:Asynchronous Module Definition。

是异步模块定义

模块定义:define(id?,dependencies?, factory);

id 是模块的名字,它是可选的参数。

dependencies 指定了所要依赖的模块列表,它是一个数组,也是可选的参数

AMD需要在声明模块时指定所有的依赖,通过形参传递依赖到模块内容中:

define(['./a', './b'], function (dep1, dep2) {
    a.doSomethimg()
    b.doSomething()
});

CMD规范

与AMD规范相对的还有CMD规范,全称:CommonModule Definition。

是公共模块定义

这是由国内的玉伯(也是一位大佬)提出的

模块定义:define(factory)

CMD支持动态引入:

define(function(require, exports, module) {
    var a=require('./a')
    a.doSomethimg()
    var b=require('./b')
    b.doSomething()
})

在需要依赖模块时,随时调用require()引入即可

AMD和CMD最大的区别是对依赖模块的执行时机处理不同

兼容多种模块规范

创建一个hello方法,让hello方法能在不同运行环境中运行,兼容Node、AMD、CMD和常见浏览器

怎么理解Node.js中的包与NPM

到此,关于“怎么理解Node.js中的包与NPM”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. Npm包的开发
  2. 不会发布npm包?进来看看?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

node.js

上一篇:MySQL中filesort算法有几种

下一篇:Docker网络基础中Linux网桥工作原理以及是怎样实现的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》