一、ES6模块
1.import { stat, exists, readFile } from 'fs';
通过export命令显式指定输出的代码,再通过import命令输入,上面代码的实质是从fs模块加载 3 个方法,其他方法不加载。ES6 可以在编译时就完成模块加载,效率要比 CommonJS 模块的加载方式高。
2.export对外接口使用
var firstName = 'Michael';
var lastName = 'vicky';
export { firstName, lastName }; //列表导出
export { firstName as first, lastName as last}; //重命名导出
export var a = 3; //导出单个属性
export function multiply(x, y) { return x * y; }; //导出单个属性
//默认导出,一个模块只能有一个默认导出,不能使用 var、let 或 const 用于导出默认值 export default。
export default {}
export default function foo(){}
var a = 1;
export a; //报错,因为没有提供对外的接口。应该export var a = 1; 或者export {a}
3.import导入命令
import * as person from './person.js' //导入整个模块内容
import {firstName,lastName} from './person.js' //导入多个接口
import {firstName as name} from './person.js' //重命名 特别注意
import '/modules/my-module.js'; //运行整个模块而不导入任何值
import myDefault from './my-module.js'; // 导入使用export default导出的模块
4.CommonJS 和 AMD 模块,
都只能在运行时确定模块之间的依赖关系,以及输入输出的变量。比如,CommonJS 模块就是对象,输入时必须查找对象属性。
// CommonJS模块
let { stat, exists, readfile } = require('fs');//依赖fs文件
// 等同于
let _fs = require('fs');
let stat = _fs.stat;
let exists = _fs.exists;
let readfile = _fs.readfile;
5.npm 模块
npm是的Javascript开发者能够更方便的分享和复用以及更新代码,被复用的代码被称为包或者模块,一个模块中包含了一到多个js文件。在模块中一般还会包含一个package.json的文件,该文件中包含了该模块的配置信息。该文件是个json文件,其配置信息如下:
name 模块名称
version 模块版本
description 描述信息
main 指定模块入口文件
type 当type值为module的时候,支持es模块化
scripts 脚本,使用' npm run 脚本名'可以调用
dependencies 依赖关系
devDependencies 环境依赖或测试依赖
6.npm常用指令
npm init // npm化
-y
npm install <module_name> //安装npm中单元架包
--save、-S //保存
--save-dev、-D
--global、-g //全局
npm update <module_name> //上传npm中单元架包
npm uninstall <module_name> //卸载npm中单元架包
7.淘宝npm镜像cnpm
使用过程中,npm安装依赖的速度比较慢,我们可以使用淘宝的npm镜像cnpm,cnpm的使用与npm使用非常类似。不过在使用之前要先安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm init
-y
cnpm install <module_name>
--save、-S
--save-dev、-D
--global、-g
cnpm update <module_name>
cnpm uninstall <module_name>
安装国内node中的npm(cnpm)在服务连接中会比国外微软连接较快,所以我们可以安装淘宝cnpm,在vscode中安装即可,如果不知道安装在那个文件夹里执行,可直接选择全局安装。