CommonJS替代ES6作为别名导入

时间:2017-10-13 20:34:45

标签: javascript ecmascript-6 commonjs

ES6可以导出导出为别名,就像这样;

import express from 'express'
import { express as playground } from 'graphql-playground/middleware'

是否有另一种方法可以使用CommonJS require('something')执行此操作?或者,如果以CommonJS方式完成,可以绕过上述声明问题?

这会引发错误。

const express = require('express')
const express = require('graphql-playground/middleware')

// SyntaxError: Identifier 'express' has already been declared

2 个答案:

答案 0 :(得分:3)

CommonJS实际上只是为变量赋值,您可以根据需要命名变量:

const express = require('express');
const playground = require('graphql-playground/middleware').express;

答案 1 :(得分:0)

对于非默认导出(module.export = var),您还可以使用常规解构语法进行别名:

const {
  originName: newNameInFile
} = require('foo.js')