ES6 作为别名导入的 CommonJS 替代品
CommonJS alternative to ES6's importing as alias
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 实际上只是为变量赋值,您可以随意命名变量:
const express = require('express');
const playground = require('graphql-playground/middleware').express;
对于非默认导出(module.export = var),您还可以使用常规解构语法作为别名:
const {
originName: newNameInFile
} = require('foo.js')
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 实际上只是为变量赋值,您可以随意命名变量:
const express = require('express');
const playground = require('graphql-playground/middleware').express;
对于非默认导出(module.export = var),您还可以使用常规解构语法作为别名:
const {
originName: newNameInFile
} = require('foo.js')