require | import |
---|---|
由 CommonJS 所支援 | ECMAScript 原生支援 |
執行到require 該行才進行載入 console.log("require module1"); const obj = require("./module2"); console.log(`module2 = ${obj.module2}`); /***** Output *****/ require module1 require module2 module2 = require module2 |
一定會在開頭載入並預先執行,無論import 是否寫在檔案結尾 console.log("require module1"); import module2 from "./module2.js"; console.log(`module2 = ${module2}`); /***** Output *****/ require module2 require module1 module2 = require module2 |
載入時是一行一行同步載入 | 載入時是非同步載入 (效能佳) |
Runtime 時期加載 (允許動態載入) let name = a + b; require('dep') |
編譯時期加載 (compile time loading) (變數無法動態加載) let name = a + b; //會噴error ↑ import { name } from dep |
執行整個js 檔,將結果export 為變數 let dep = require('dep') dep.print(); console.log(dep.name); |
只載入欲載入的物件 (省資源) import {print, name} from 'dep' print(); console.log(dep.name); |