詳談 import 路徑


轉自: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');

查找規則:

  1. 如果X是內置模塊,則直接返回該模塊。如require('http')。
  2. 如果X以./、/、../開頭:
    1. 根據X所在的父模塊,確定X的絕對路徑。
    2. 將X當做文件,依次查找下面的文件,如果找到,則直接返回。
      1. X
      2. X.js
      3. X.json
      4. X.node
    3. 將X當做目錄,依次查找下面的文件,如果找到,則直接返回。
      1. X/package.json(查找main字段中的文件,規則同上)
      2. X/index.js
      3. X/index.json
      4. X/index.node
  3. 如果X不帶路徑:
    1. 根據X所在的父模塊,確定X可能的安裝目錄。
    2. 依次在每個目錄中,將X當成文件名或目錄名加載。
       
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM