模块化与npm

85 阅读2分钟

1. 模块化

一个js文件可以引入其他的js文件,能使用引入的js文件中的变量、数据,这种特性就成为模块化.

使用模块化开发可以很好的解决变量、函数名冲突问题,也能灵活的解决文件依赖问题

模块化的发展

long long ago

es5不支持模块化,让前端人员蛋疼至极,为了让支持模块化,我们一般会借助第三方库实现.

sea.js www.zhangxinxu.com/sp/seajs/

require,js requirejs.org/

Now

es6原生语法也支持模块化(并不表示浏览器也直接支持模块化--需要单独设置)

Nodejs内部也支持模块化(与es6的模块化有些不同之处)

常见模块化规范

nodejs的模块化

CommonJS规范中主要规定了一下三项:

  • 导入其它模块时,统一使用 require() 函数。
  • 每个 .js 文件,都是一个独立的模块,模块内的成员都是私有的。
  • 在每个 JS 模块中,使用 module.exports 向外共享成员。

es6的模块化

sea.js

require.js

2. npm

  • npm 全称 Node Package Manager(node 包管理器),它的诞生是为了解决 Node 中第三方包共享的问题。
  • npm 不需要单独安装。在安装Node的时候,会连带自动安装npm
  • npm -v检查安装的情况。
  • 官网

包(package)与模块关系

npm网站上去下载我们的需要的代码时,它们是以""这种结构放在npm网站上的。先来了解下包和模块的关系。

  • nodejs中一个模块就是一个单独的js文件
  • Node.js 中的第三方模块,又叫做包、第三方包、依赖包
  • 包是多个模块的集合。一个模块的功能比较单一,所以一个包一般会包含多个模块。
  • npm 管理的单位是包。类似于网站和网页的区别:一个网站一般会包含多个网页。

npm下载使用包

分成三步:

  • 初始化项目。npm init 如果之前已经初始化,则可以省略。
  • 安装包。 npm install 包名。[注意:保持联网的状态哈]
  • 引入包,使用