-->

Can I use alias with NodeJS require function?

2020-05-20 07:22发布

问题:

I have an ES6 module that exports two constants:

export const foo = "foo";
export const bar = "bar";

I can do the following in another module:

import { foo as f, bar as b } from 'module';
console.log(`${f} ${b}`); // foo bar

When I use NodeJS modules, I would have written it like this:

module.exports.foo = "foo";
module.exports.bar = "bar";

Now when I use it in another module can I somehow rename the imported variables as with ES6 modules?

const { foo as f, bar as b } = require('module'); // invalid syntax
console.log(`${f} ${b}`); // foo bar

How can I rename the imported constants in NodeJS modules?

回答1:

Sure, just use the object destructuring syntax:

 const { old_name:new_name ,foo: f, bar: b } = require('module');


回答2:

It is possible (tested with Node 8.9.4):

const {foo: f, bar: b} = require('module');
console.log(`${f} ${b}`); // foo bar


回答3:

I would say it is not possible, but an alternative would be:

const m = require('module');
const f = m.foo;
const b = m.bar;