JavascriptのExportについて
前提
$ node --version v.9.11.1
背景
import React from 'react'; import {render} from 'react-dom';
前者のように{}無しで書く場合と後者のように{}有りで書く場合があって、よくわからなかったから調べる。
名前付きエクスポートとデフォルトエクスポート
エクスポートの方法によってインポートの方法も変わるようだ。
名前を付けてエクスポートする場合はインポート側もその名前で束縛しなければならない。デフォルトエクスポートの場合はインポート側で束縛する名前を指定できる。
以下はlib.jsでaとbを定義してindex.jsでaをxとして、bをbとしてインポートしている。
lib.js
const a = 'this is a'; const b = 'this is b'; export default a; export {b};
index.js
import x from './lib'; import {b} from './lib'; console.log(x); console.log(b);
参考
名前付きエクスポートとデフォルトエクスポートについてはMDNを良く読む。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/export
nodeでimport/exportを使う方法
ついでにnodeでimport/export文を使うには .js
でなく .mjs
として保存し、 node --experimental-modules index.mjs
と実行する。
参考
適当にググってこのQiitaが出てきた。
https://qiita.com/ryohji/items/93f5050b9af6fc15693c
公式はこのへん。