详谈 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