Wiki_JS_CommonJs_vs_EcmaScript - inoueshinichi/Wiki_Web GitHub Wiki
CommonJSとEcmaScriptの差異
参考
CommonJSのExport
exports.{your_object} = {your_object}
module.exports = { ... }
EcmaScriptのExport
export {your_object}
default export {your_object}
EcmaScriptにおいて__dirname,__filenameを利用する方法
// ES js
import path from 'node:path';
import { fileURLToPath } from 'node:url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
EcmaScriptにおける動的インポート
- importモジュールを使用する
- CommonJSのrequire('your/lib')は動的インポート
- importモジュールの戻り地はPromise
- resolve()時の引数にmoduleを受け取る.
// ES js
// then/catch/finallyを用いる場合
import("your/lib")
.then((module) => {
// statement
const obj = new module.YourObj();
obj.method();
})
.catch((err) => {
console.err(error);
})
.finally(() => {
// statement
});
// async/awaitを用いる場合
async function main() {
const module = await import("your/lib");
const obj = new module.YourObj();
obj.method();
}
main();