js不足 #

什么是CommonJS? #

CommonJS 是javascript模块化编程的一种规范,主要是在服务器端模块化的规范,一个单独的文件就是一个模块。每一个模块都是一个单独的作用域,也就是说,在该模块内部定义的变量,无法被其他模块读取,除非定义为global对象的属性。

1.模块的使用 #

1.1 模块 #

1.2 文件的作用域 #

每个模块都是一个单独的作用域,通过闭包的形式产生独立作用域

(function(exports,require,module,__filename,__dirname){
return module.exports;
});

1.3 文件加载缓存 #

1.4 导出类和对象 #

module.exports和exports的区别

(function(exports,require,module,__filename,__dirname){
    exports = module.exports = {};
    return module.exports;
});

2.包和npm #

3.初始化项目 #

$ npm init
{
"name":"包的名称",
"description""包的简要说明。",
"version":"版本号",
"keywords""关键字",
"licenses":"许可证",
"repositories""仓库地址 ",
"dependencies":"包的依赖,一个关联数组,由包名称和版本组成。"
}

4.安装第三放包 #

4.1 全局安装 #

直接下载到Node的安装目录中,各个项目都可以调用,适合工具模块,比如webpack

$ npm install -global webpack

全局安装可以在命令行下直接使用

4.2 本地安装 #

将一个模块下载到当前目录的node_modules子目录,然后只有在当前目录和它的子目录之中,才能调用这个模块

$ npm install  webpack --save-dev/--save

后期我们会在package.json里使用本地模块,我们可以用require使用本地模块

4.3 查看全局路径 #

$ npm root -g

5.卸载第三方包 #

6.发布项目 #

6.1 发布步骤 #

6.2 管理源 #

nrm NPM registry 管理工具

$ npm install -g nrm 安装此工具
$ nrm ls 显示所有的源
$ nrm use cnpm 切换到中国源
$ nrm help 显示帮助

7.模块的分类 #

7.1 内置模块 #

这里我们使用util(内置模块)举例说明:

8.模块查找规则 #

当没有以'/'或者'./'来指向一个文件时,这个模块要么是核心模块,要么就是从node_modules文件夹加载的

8.1 查找 #