JavaScriptのインポートとエクスポートでモジュール管理を効率化
- 作成日 2025.02.23
- javascript
- javascript
JavaScriptのESモジュール機能を活用すると、コードの再利用性を高め、プロジェクト構造を整理できます。本記事では、インポートとエクスポートの使い方を詳しく説明し、効率的なモジュール管理の方法を解説します。
目次
モジュールの基本
モジュールは、ファイル単位で機能を分割し、他のファイルで利用するための仕組みです。
// module.js
export const greet = name => `Hello, ${name}!`;
// main.js
import { greet } from './module.js';
console.log(greet('World'));名前付きエクスポート
複数のエクスポートを提供する場合。
// utilities.js
export const add = (a, b) => a + b;
export const subtract = (a, b) => a - b;
// main.js
import { add, subtract } from './utilities.js';
console.log(add(2, 3)); // 5
console.log(subtract(5, 2)); // 3デフォルトエクスポート
1つのモジュールで1つのデフォルトエクスポートを提供します。
// math.js
export default function multiply(a, b) {
return a * b;
}
// main.js
import multiply from './math.js';
console.log(multiply(2, 3)); // 6名前付きエクスポートとデフォルトエクスポートの違い
両者の違いと使い分け。
// module.js
export const name = 'Module';
export default function greet() {
return 'Hello from the default export!';
}
// main.js
import greet, { name } from './module.js';
console.log(greet()); // Hello from the default export!
console.log(name); // Moduleすべてのエクスポートをインポート
特定の名前空間にまとめてインポートします。
// constants.js
export const PI = 3.14;
export const E = 2.71;
// main.js
import * as constants from './constants.js';
console.log(constants.PI); // 3.14
console.log(constants.E); // 2.71エイリアスを使用したインポート
名前の衝突を回避するためのエイリアス。
// math.js
export const add = (a, b) => a + b;
// main.js
import { add as sum } from './math.js';
console.log(sum(1, 2)); // 3動的インポート
必要に応じてモジュールをインポートします。
async function loadModule() {
const module = await import('./module.js');
console.log(module.greet('Dynamic Import'));
}
loadModule();再エクスポート
他のモジュールのエクスポートをそのまま再エクスポート。
// module1.js
export const hello = () => 'Hello';
// module2.js
export { hello } from './module1.js';
// main.js
import { hello } from './module2.js';
console.log(hello()); // Helloインポート時のパス指定
絶対パスと相対パスの使い分け。
// 相対パス
import { func } from './folder/module.js';
// 絶対パス(設定が必要)
import { func } from 'folder/module.js';モジュールバンドラーの役割
WebpackやRollupでモジュールを1つのファイルにバンドル。
// Webpack設定例
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: __dirname + '/dist',
},
};トリートメントシュキング
使用されないコードを削除して効率化。
// tree-shaking.js
export const usedFunction = () => console.log('Used');
export const unusedFunction = () => console.log('Unused');
// main.js
import { usedFunction } from './tree-shaking.js';
usedFunction();まとめ
JavaScriptのインポートとエクスポートを適切に使うことで、モジュール管理が効率化され、コードの可読性と保守性が向上します。これらのテクニックを活用して、モダンな開発を進めてください。
-
前の記事
Railsのエラー『ActionView::Template::Error: Asset was not declared to be precompiled』の解決方法 2025.02.23
-
次の記事
Railsエラー『Sprockets::Rails::Helper::AssetNotFound: The asset ‘X’ is not present』の解決方法 2025.02.24
コメントを書く