Javascript 如何用新的es6模块语法表示此节点导出

Javascript 如何用新的es6模块语法表示此节点导出,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,在新的es6模块语法中,这种(再)导出将如何编码: math.js module.exports = { PI: 3.14 }; export default { PI: 3.14 }; export const PI = 3.14; export default { PI: PI }; module.js const myMath = require('./math.js'); function myFunc() {} module.exports = { PI:

在新的es6模块语法中,这种(再)导出将如何编码:

math.js

module.exports = {
   PI: 3.14
};
export default {
  PI: 3.14
};
export const PI = 3.14;
export default {
  PI: PI
};
module.js

const myMath = require('./math.js');

function myFunc() {}

module.exports = {
   PI: myMath.PI, // now is this done in es6?
   myFunc: myFunc
};
import myMath from './math.js';

function myFunc() {}

export default {
  PI: myMath.PI,
  myFunc: myFunc
};
import PI from './math.js';

function myFunc() {}

export default {
  PI: PI,
  myFunc: myFunc
};

有几种方法,最简单的版本

math.js

module.exports = {
   PI: 3.14
};
export default {
  PI: 3.14
};
export const PI = 3.14;
export default {
  PI: PI
};
module.js

const myMath = require('./math.js');

function myFunc() {}

module.exports = {
   PI: myMath.PI, // now is this done in es6?
   myFunc: myFunc
};
import myMath from './math.js';

function myFunc() {}

export default {
  PI: myMath.PI,
  myFunc: myFunc
};
import PI from './math.js';

function myFunc() {}

export default {
  PI: PI,
  myFunc: myFunc
};
另一种方法是,在模块上有多个导出:

math.js

module.exports = {
   PI: 3.14
};
export default {
  PI: 3.14
};
export const PI = 3.14;
export default {
  PI: PI
};
module.js

const myMath = require('./math.js');

function myFunc() {}

module.exports = {
   PI: myMath.PI, // now is this done in es6?
   myFunc: myFunc
};
import myMath from './math.js';

function myFunc() {}

export default {
  PI: myMath.PI,
  myFunc: myFunc
};
import PI from './math.js';

function myFunc() {}

export default {
  PI: PI,
  myFunc: myFunc
};
在本例中,我们仅从数学模块导入PI


注意:您必须使用transpiler才能工作,node还不支持ES6模块。

有几种方法,最简单的版本

math.js

module.exports = {
   PI: 3.14
};
export default {
  PI: 3.14
};
export const PI = 3.14;
export default {
  PI: PI
};
module.js

const myMath = require('./math.js');

function myFunc() {}

module.exports = {
   PI: myMath.PI, // now is this done in es6?
   myFunc: myFunc
};
import myMath from './math.js';

function myFunc() {}

export default {
  PI: myMath.PI,
  myFunc: myFunc
};
import PI from './math.js';

function myFunc() {}

export default {
  PI: PI,
  myFunc: myFunc
};
另一种方法是,在模块上有多个导出:

math.js

module.exports = {
   PI: 3.14
};
export default {
  PI: 3.14
};
export const PI = 3.14;
export default {
  PI: PI
};
module.js

const myMath = require('./math.js');

function myFunc() {}

module.exports = {
   PI: myMath.PI, // now is this done in es6?
   myFunc: myFunc
};
import myMath from './math.js';

function myFunc() {}

export default {
  PI: myMath.PI,
  myFunc: myFunc
};
import PI from './math.js';

function myFunc() {}

export default {
  PI: PI,
  myFunc: myFunc
};
在本例中,我们仅从数学模块导入PI


注意:您必须使用transpiler才能工作,node还不支持ES6模块。

另一种方法是使用ES6提供的重新导出功能:

# math.js
export const PI = 3.14;

# module.js
export {PI} from './mymath.js';

export function myFunc() { /* TODO */ }

另一种方法是使用ES6提供的再导出功能:

# math.js
export const PI = 3.14;

# module.js
export {PI} from './mymath.js';

export function myFunc() { /* TODO */ }

@MaterialStreams记住节点不支持ES6模块。您需要babel来传输后端代码。@MaterialStreams请记住,Node不支持ES6模块。您需要babel来传输后端代码。