node.js 导入导出模块(CommonJS模块化规范,ES6模块化规范)

简介: node.js 导入导出模块(CommonJS模块化规范,ES6模块化规范)

JavaScript 有两种模块化规范:

  1. CommonJS模块化规范——使用require()导入模块,module.exports导出模块
  2. ES6模块化规范——使用import导入模块,export 导出模块

两种模块化规范不兼容!(两种语法不能在同一个文件中使用,除非用babel转义)

CommonJS模块化规范

方式一【适用于模块只对外输出一个方法】

导出模块

//a.js
 
function log(str){
  console.log(str);
} 
 
module.exports = log

导入模块

//index.js
 
const log= require('./a.js');
log('你好');//打印 '你好'

require的加载过程图解

方式二【适用于模块对外输出多个方法】

导出模块

//a.js
 
module.exports.log = function(str){
  console.log(str);
} 

导入模块

//index.js
 
const logModule = require('./a.js');
logModule.log('你好');//打印 '你好'


ES6模块化规范

导出模块

// a.js
 
export function log(str) {
    console.log(str)
}

导入模块

// b.js
 
import { log } from './a.js'
 
log('你好')

node.js支持ES6模块化规范的方法

nodejs 默认使用CommonJS模块化规范,若想使用ES6模块化规范,有以下方法:

方法一:将文件后缀名修改为.mjs

node.js对.mjs文件总是使用 ES6 模块化规范,运行文件时,使用  node  test.mjs

方法二:在package.json文件中,指定type字段为module

若项目中没有package.json文件,则在项目文件夹下新建package.json文件

{
   "type": "module"
}

使用此方法后,所有CommonJS模块化规范的js文件的后缀名需改为.cjs

方法三:安装babel

使用babel将js文件编译成node.js支持的commonjs格式的代码。

安装依赖

npm i babel-register babel-preset-env -D

项目目录下新建babel的配置文件 .babelrc

{
  "plugins": [
    "transform-es2015-modules-commonjs"
  ]
}


在项目启动文件中,引入babel

require('babel-register')

完整范例代码

目录结构

│  .babelrc
│  package.json
└─src
        a.js
        index.js
        print.js

index.js

require('babel-register')
require('./print')
import a from './a'

a.js

console.log('aaa')

运行index.js

node index.js

目录
相关文章
|
JavaScript 前端开发
在Node.js中,如何合理使用模块来避免全局变量的问题?
在Node.js中,如何合理使用模块来避免全局变量的问题?
652 167
|
JavaScript
Nodejs的模块化概述
详细解释Node.js的模块化概念,包括CommonJS规范、模块的引用、定义、标识,以及如何在Node.js中实现模块化,并通过示例代码展示了如何创建和使用模块,以及"module.exports"和"exports"的区别。
237 1
Nodejs的模块化概述
|
缓存 JSON JavaScript
Node.js模块系统
10月更文挑战第4天
197 2
|
缓存 JavaScript 前端开发
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
437 2
|
缓存 JavaScript 前端开发
Node.js模块化的基本概念和分类及使用方法
Node.js模块化的基本概念和分类及使用方法
416 0
|
JavaScript 应用服务中间件 Apache
Node.js Web 模块
10月更文挑战第7天
207 0
|
JavaScript 网络协议
Node.js 工具模块
10月更文挑战第7天
188 0
|
JavaScript 前端开发 应用服务中间件
Node.js Web 模块
Node.js Web 模块
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
3767 11
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
1298 155

热门文章

最新文章