A volte vuoi combinare queste sintassi, molto spesso quando import
ing qualcosa che utilizza la sintassi commonjs. Alcuni casi sono già stati discussi per esempio qui:
Come utilizzare ES6 "export default" correttamente con CommonJS "richiede"?
ma sicuramente ci sono più situazioni che possono verificarsi!
risposte:
-1 per risposta № 1Come hanno sottolineato @Bergi e @Mike nei commentidipende dal transpiler (più comunemente Babel), come affronta l'importazione / esportazione ES6. Pochi esempi, quello che otterrai con Babel (con i suoi plugin standard):
module.exports = 1 // a.js
import one from "./a" // b.js
// one === 1
module.exports = {one: 1} // a.js
import obj from "./a" // b.js
// obj is {one: 1}
import * as obj from "./a" // b.js
// obj.one === 1 ; however, check out the "funky stuff" below
import {one} from "./a" // b.js
// one === 1
Esportazione ES6, CommonJS richiede
export default 1 // a.js
const one = require("./a").default
// one === 1
export const one = 1
const one = require("./a").one
// one === 1
Roba funky
module.exports = 1 // a.js
import * as obj from "./a" // b.js
// obj is {default: 1}
module.exports = {one: 1} // a.js
import * as obj from "./a" // b.js
// obj is {one: 1, default: {one: 1}}