import,require

import/export , require/exportsの立ち位置

import/export
ES6(ES2015)、ESモジュール(ESM)
require/exports
CommonJS(Node.js)
  • require/exportsはJavaScriptの標準APIではない

require/exports

lib1.js

 var n = 1000;
 var add = function (val) {
   return val + n;
 };
 module.exports.n = n;
 module.exports.add = add;

main.js

 var lib1 = require("./lib1");
 console.log(lib1.add(5));
 
  => 1005

require/exports

lib1.mjs

 export function add(val1, val2) {
   return val1 + val2;
 }

main.mjs

 import { add } from "./lib1.mjs";
 console.log(add(5, 10));

Nodeでの実行

 Shell> node --experimental-modules ./main.mjs
  => 15
  • NodeでESモジュールを使う場合は、拡張子を.mjsにして--experimental-modulesオプションを付けて実行する
  • なお、Node バージョン12以降は.mjsでなくとも、package.json{ "type": "module" }と記述すればOKとなった

参考

import
MDN https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import
require
Node.js https://nodejs.org/api/modules.html#modules_modules

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS