轉自:https://blog.csdn.net/sinat_36422236/article/details/85051297
import路徑
import {test} from './test';
花括號
import {test} from './test';
import test from './test';
如果有默認導出export default
則可以省略花括號,且import
的模塊名是隨意的,如:
// a.js export default 'test'; // b.js import a from './a'; import A from './a'; import myA from './a';
非export default
導出的模板名,在引用時須加花括號,且引用模塊名與導出時的命名必須相同,如:
// a.js export const a = 'test'; // b.js import {a} from './a'; import {A} from './a'; // error import {myA} from './a'; // error
一個模塊中只允許一個默認導出export default
,但允許多個命名導出export
;
路徑
import test from 'test';
import test from './test';
babel
默認會把ES6的模塊轉化為commonjs
規范
import test from 'X'; // 等價於 var test = require('X');
查找規則:
- 如果X是內置模塊,則直接返回該模塊。如require('http')。
- 如果X以./、/、../開頭:
- 根據X所在的父模塊,確定X的絕對路徑。
- 將X當做文件,依次查找下面的文件,如果找到,則直接返回。
- X
- X.js
- X.json
- X.node
- 將X當做目錄,依次查找下面的文件,如果找到,則直接返回。
- X/package.json(查找main字段中的文件,規則同上)
- X/index.js
- X/index.json
- X/index.node
- 如果X不帶路徑:
- 根據X所在的父模塊,確定X可能的安裝目錄。
- 依次在每個目錄中,將X當成文件名或目錄名加載。