CommonJS Modüllerinden ES6 Modüllerine
ES6, modüller için yerleşik desteğe sahiptir. Ne yazık ki, hiçbir JavaScript motoru henüz yerel olarak desteklememektedir. Ancak browserify, webpack veya jspm gibi araçlar, modüller oluşturmak için ES6 sözdizimini kullanmanıza izin verir.
Birden çok export
CommonJS ile birden çok export
CommonJS’te birden çok export’u şu şekilde yaparsınız:
//------ lib.js ------
var sqrt = Math.sqrt;
function square(x) {
return x * x;
}
function diag(x, y) {
return sqrt(square(x) + square(y));
}
module.exports = {
sqrt: sqrt,
square: square,
diag: diag,
};
//------ main1.js ------
var square = require('lib').square;
var diag = require('lib').diag;
console.log(square(11)); // 121
console.log(diag(4, 3)); // 5
Alternatif olarak, tüm modülü bir nesne olarak import edebilir ve karesine erişebilir ve bunun üzerinden arama yapabilirsiniz:
//------ main2.js ------
var lib = require('lib');
console.log(lib.square(11)); // 121
console.log(lib.diag(4, 3)); // 5
ES6 ile birden çok export
ES6’da ise aynı işlemler aşağıdaki gibi yapılabilir:
//------ lib.js ------
export const sqrt = Math.sqrt;
export function square(x) {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}
//------ main1.js ------
import { square, diag } from 'lib';
console.log(square(11)); // 121
console.log(diag(4, 3)); // 5
Modüllerin nesne olarak içe aktarılması için kullanılan syntax aşağıdaki gibidir (satır A)
//------ main2.js ------
import * as lib from 'lib'; // (A)
console.log(lib.square(11)); // 121
console.log(lib.diag(4, 3)); // 5
Tekli export
CommonJS ile tek export
//------ myFunc.js ------
module.exports = function () { ··· };
//------ main1.js ------
var myFunc = require('myFunc');
myFunc();
ES6 ile tek export
//------ myFunc.js ------
export default function () { ··· } // no semicolon!
//------ main1.js ------
import myFunc from 'myFunc';
myFunc();