CommonJS替代ES6的导入别名

3

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

你不能只是将它赋值给一个不同的变量名吗?你还没有展示一个CommonJS的例子,所以很难给出建议要改变什么。 - undefined
1
喜欢 const express = require('express'); const playground = require('graphql-playground/middleware').express; 吗?不确定我是否理解你的问题。 - undefined
是的,@FelixKling,那正是我所需要的。谢谢你,并对解释不清楚表示抱歉。 - undefined
2个回答

4

CommonJS实际上只是将值分配给变量,您可以随意命名这些变量:

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

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接