0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

モダンJavaScript (モジュール・パッケージ・ビルド)

Last updated at Posted at 2025-01-15

しまぶーさん モダンJavaScript講座など参考
https://youtu.be/De9PH3EAz7c

モジュール

コードを1ファイルにまとめ影響範囲を限定したもの

  • プログラムの再利用がしやすい
  • 同一命名をファイルごと定義可能
  • 機能ごとに分割など管理が容易になる
  • 別スコープに import export できる
name.js
// nameをexport
export const name = "タナカ";
index.js
// name.jsのnameを取り入れる
import { name } from "./name.js";

document.body.textContent = name;
HTML
<!DOCTYPE html>
<html lang="js">
  <body></body>
  <!-- type="module"でモジュールと認識 -->
  <script src="./index.js" type="module">
  </script>
</html>

image.png

モジュールの書き方2種(ES Modules/CommonJS)

  • ESモジュール方式 ←現在の主流

エクスポート

module.js
// 宣言時に export
export const foo = "foo";
export fonction hello(){conosole.log("hello")};

// またはまとめてexport
export {foo, hello};

インポート

main.js
import {foo, hello} from "./module.js"
foo; // "foo"
bar(); // console=> "hello"

ESモジュールはHTMLのどこにおいても最後に評価される(遅延評価)ので、
<script src="...">でのjsファイル読み込みをどこでもできる。※head内とか

HEML
<!DOCTYPE html>
<html lang="ja">
    <head>
        <title>test</title>
        <!-- ここで読み込んでも末尾まで読んでから実行 -->
        <script src="./module.js" type="modules"></script> 
    </head>
    <body></body>
</html>
  • Common JS方式
    Node.jsで使われてきた方式。
  • module.exports exportsでエクスポート/インポート
module.js
const name = "aaa";

// exports.〇〇でエクスポート
exports.name = name;
exports.add = (a, b) => a + b;
main.js
// require("moduleのパス")で受け取り
const myModule = require("./module");

// module.〇〇で使用
console.log(myModule.name); // aaa
console.log(myModule.add(1, 2)); // 3

※ Nodeで実行する場合、そのままだとES形式と認識されて実行できない。

※ プロジェクト直下でnpm init -yしてpackage.jsonを作成し、"type": "commonjs";を記載する。

パッケージ

  • パッケージとはモジュール依存関係をまとめたもの
  • npmを使い管理する
    • モジュール間の依存関係管理
    • インストール/アンインストール

使い方

  1. npmで各種パッケージをインストール
  2. .jsにimport
JS
// 例
import axios from 'axios';
import chalk from 'chalk';

ビルド

  • 開発したコードを実行環境が実行できるためにコンパイルバンドルすること。(再編して最適化するイメージ)
  • ビルドはモジュールバンドラが担う
    - vite
    - webpack
    - など

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?