CommonJS 规范、ES6中的模块导出导入

·# 模块
require: node 和 es6 都支持的引入
export / import : 只有es6 支持的导出引入
module.exports / exports: 只有 node 支持的导出

CommonJS 规范定义的模块分为:

模块标识(module)
模块定义(exports)
模块引用(require)

  • exports 暴露值和函数
//my.js
var name = 'jack';
exports.name = name;
exports.user = 'lily';
//require
var myname = require("./my.js");



var show = function() {
  
}
exports.show = show;


exports.show = function(){

}

var myshow = require('./my.js');
myshow.show();
  • module.exports 暴露类

  • require(“安装的包”)

  • require("./package/自定义的文件")

ES6中的模块导出导入

现阶段的node.js不支持export,export default
1,在package.json增加 babel的配置

"babel": {
     "presets": ["es2015"]
    },
    "scripts": {
     "start": "node app/51job.js",
     "build": "babel src -d app"
    },

安装babel相关模块
npm install --save-dev babel-cli
npm install babel-preset-es2015 --save-dev

export 和 export default

  1、export与export default均可用于导出常量、函数、文件、模块等
  2、你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
  3、在一个文件或模块中,export、import可以有多个,export default仅有一个
  4、通过export方式导出,在导入时要加{ },export default则不需要
  // user.js
  export var username = 'jack';
  export var userpwd = '123456';

//main.js
import {username,userpwd} from './user.js'