如何编写ES6 import语法 和 NodeJs中require 语法都能同时引进的模块文件

问题引入

在编写nodejs代码中想要引进我的一个工具函数包 utils.js ;
里面的代码结构如下:

 //utils.js

export const funA = () => {} ; //函数funA 
export const funB = () => {} ; //函数funB

在其它js文件中使用ES6 import语法 import * as Utils from ‘./utils’ 中都没问题,但是在nodejs中用import,启动 node serve.js时候会报语法错误(除非用 babel-node serve.js 编译ES6)。这是由于nodejs中部分ES6语法还没有标准化,还不能直接支持(今后新版本可能会支持哦~~),需要安装 babel-cli 去支持。

怎么解决?

大家都知道node中通常引入模块是 require 语法,而非import语法。 那么怎么编写一个js文件 即支持require 语法,又支持import语法呢。

//utils.js

const funA = () => {} ; //函数funA 
const funB = () => {} ; //函数funB
module.exports = {
  funA:funA,
  funB:funB,
}

这样node中也可以用require 引进:

//nodejs   
//service.js

const Utils = require('./util')

启动node服务器 node serve.js 就不会报错啦。(注:service.js为nodejs的入口文件)

    原文作者:小鱼er
    原文地址: https://segmentfault.com/a/1190000014270276
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞