commonjs構文を使用するものをimport
と入力すると、これらの構文を組み合わせることがよくあります。いくつかの例は、すでにここで例えば議論された:CommonJSのエクスポート/要求と一緒にES6のインポート/エクスポートを実行する方法
How to correctly use ES6 "export default" with CommonJS "require"?
しかし確実に発生する可能性がより多くの状況があります!
commonjs構文を使用するものをimport
と入力すると、これらの構文を組み合わせることがよくあります。いくつかの例は、すでにここで例えば議論された:CommonJSのエクスポート/要求と一緒にES6のインポート/エクスポートを実行する方法
How to correctly use ES6 "export default" with CommonJS "require"?
しかし確実に発生する可能性がより多くの状況があります!
@Bergiと@Mikeはコメントに指摘しているように、それはES6のインポート/エクスポートにどのように対処するのかは、トランスバータ(最も一般的なBabel)までです。あなたはバベルとなっただろうどのようないくつかの例、(その標準プラグインで):
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
export default 1 // a.js
const one = require('./a').default
// one === 1
export const one = 1
const one = require('./a').one
// one === 1
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}}
仕様がありますか? – Bergi
この仕様はどこですか?私はそれが完全にtranspilerまでであることを99%確信しています。 –
@MikeC:そうですが、これらの2つの構文がどのように相互運用されるべきかに関する仕様はありません。私はそれに応じて答えを編集しました。 –
これは、モジュールシンタックストランスパイラと、使用するモジュールローダまたはバンドラに依存します。ドキュメント内のすべてを見つけることができるはずです。 – Bergi